#
d7be7905 |
| 24-Oct-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Plug memory leak.
MFC after: 3 days
|
#
9dd5a6cb |
| 22-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Switch to sigprocmask(2) API also in the main process and secondary process. This way the primary process inherits signal mask from the main process, which fixes a race where signal is delivered to t
Switch to sigprocmask(2) API also in the main process and secondary process. This way the primary process inherits signal mask from the main process, which fixes a race where signal is delivered to the primary process before configuring signal mask.
Reported by: Mikolaj Golub <to.my.trociny@gmail.com> MFC after: 3 days
show more ...
|
#
8b70e6ae |
| 22-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Fix possible deadlock where worker process sends an event to the main process while the main process sends control message to the worker process, but worker process hasn't started control thread yet,
Fix possible deadlock where worker process sends an event to the main process while the main process sends control message to the worker process, but worker process hasn't started control thread yet, because it waits for reply from the main process.
The fix is to start the control thread before sending any events.
Reported and fix suggested by: Mikolaj Golub <to.my.trociny@gmail.com> MFC after: 3 days
show more ...
|
#
e43e02f1 |
| 20-Sep-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Add __dead2 to functions that we know they are going to exit.
MFC after: 3 days
|
#
8ecdeae9 |
| 31-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Correct error message.
Submitted by: Mikolaj Golub <to.my.trociny@gmail.com> MFC after: 2 weeks
|
#
5bdff860 |
| 31-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Because it is very hard to make fork(2) from threaded process safe (we are limited to async-signal safe functions in the child process), move all hooks execution to the main (non-threaded) process.
Because it is very hard to make fork(2) from threaded process safe (we are limited to async-signal safe functions in the child process), move all hooks execution to the main (non-threaded) process.
Do it by maintaining connection (socketpair) between child and parent and sending events from the child to parent, so it can execute the hook.
This is step in right direction for others reasons too. For example there is one less problem to drop privs in worker processes.
MFC after: 2 weeks Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
show more ...
|
#
5b41e644 |
| 30-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Execute hook when connection between the nodes is established or lost.
MFC after: 2 weeks Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
|
#
2be8fd75 |
| 30-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Execute hook when split-brain is detected.
MFC after: 2 weeks Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
|
#
ecc99c89 |
| 29-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Allow to run hooks from the main hastd process.
MFC after: 2 weeks Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
|
#
f7fe83f9 |
| 27-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Implement keepalive mechanism inside HAST protocol so we can detect secondary node failures quickly for HAST resources that are rarely modified.
Remove XXX from a comment now that the guard thread n
Implement keepalive mechanism inside HAST protocol so we can detect secondary node failures quickly for HAST resources that are rarely modified.
Remove XXX from a comment now that the guard thread never sleeps infinitely.
MFC after: 2 weeks Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
show more ...
|
#
16bd7026 |
| 27-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Add QUEUE_INSERT() and QUEUE_TAKE() macros that simplify the code a bit.
MFC after: 2 weeks Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
|
#
a2ef0636 |
| 05-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Reset signal handlers after fork().
MFC after: 1 month
|
#
005f438b |
| 05-Aug-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
- Use pjdlog_exitx() to log errors and exit instead of errx(). - Use 'unable to' (instead of 'cannot') consistently.
MFC after: 1 month
|
Revision tags: release/8.1.0_cvs, release/8.1.0 |
|
#
c9697b73 |
| 24-Jun-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
MFC r209263:
r209175:
Eliminate dead code.
Found by: Coverity Prevent CID: 5158
r209177:
Remove macros that are not really needed. The idea was to have them in case we grow more descriptors, bu
MFC r209263:
r209175:
Eliminate dead code.
Found by: Coverity Prevent CID: 5158
r209177:
Remove macros that are not really needed. The idea was to have them in case we grow more descriptors, but I'll reconsider readding them once we get there.
Passing (a = b) expression to FD_ISSET() is bad idea, as FD_ISSET() evaluates its argument twice.
Found by: Coverity Prevent CID: 5243
r209179:
Plug memory leaks.
Found by: Coverity Prevent CID: 7052, 7053, 7054, 7055
r209180:
Plug memory leak.
Found by: Coverity Prevent CID: 7051
r209181:
Plug memory leak.
Found by: Coverity Prevent CID: 7056
r209182:
Plug memory leak.
Found by: Coverity Prevent CID: 7057
r209183:
Initialize gctl_seq for synchronization requests.
Reported by: hiroshi@soupacific.com Analysed by: Mikolaj Golub <to.my.trociny@gmail.com> Tested by: hiroshi@soupacific.com, Mikolaj Golub <to.my.trociny@gmail.com>
r209184:
Fix typos.
r209185:
Correct various log messages.
Submitted by: Mikolaj Golub <to.my.trociny@gmail.com>
Note that without some of these changes hastd won't work on 8.x properly.
Approved by: re (kensmith)
show more ...
|
#
f3bd7412 |
| 14-Jun-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Correct various log messages.
Submitted by: Mikolaj Golub <to.my.trociny@gmail.com> MFC after: 3 days
|
#
7a716e07 |
| 14-Jun-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Plug memory leak.
Found by: Coverity Prevent CID: 7057 MFC after: 3 days
|
#
945f418a |
| 06-May-2010 |
Kirk McKusick <mckusick@FreeBSD.org> |
Final update to current version of head in preparation for reintegration.
|
#
badd3232 |
| 01-May-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
MFC r207070,r207343,r207345,r207347,r207348,r207371,r207372,r207390:
r207070:
Fix compilation with WITHOUT_CRYPT or WITHOUT_OPENSSL options.
Reported by: Andrei V. Lavreniyuk <andy.lavr@reactor-xg
MFC r207070,r207343,r207345,r207347,r207348,r207371,r207372,r207390:
r207070:
Fix compilation with WITHOUT_CRYPT or WITHOUT_OPENSSL options.
Reported by: Andrei V. Lavreniyuk <andy.lavr@reactor-xg.kiev.ua>
r207343:
Don't assume that "resource" property is in metadata.
Reported by: Mikolaj Golub <to.my.trociny@gmail.com>
r207345:
Use WEXITSTATUS() to obtain real exit code.
r207347:
Mark temporary issues as such.
r207348:
Restart worker thread only if the problem was temporary. In case of persistent problem we don't want to loop forever.
r207371:
Fix a problem where hastd will stuck in recv(2) after sending request to secondary, which died between send(2) and recv(2). Do it by adding timeout to recv(2) for primary incoming and outgoing sockets and secondary outgoing socket.
Reported by: Mikolaj Golub <to.my.trociny@gmail.com> Tested by: Mikolaj Golub <to.my.trociny@gmail.com>
r207372:
- Check if the worker process was killed by signal and restart it. - Improve logging.
Pointed out by: Garrett Cooper <yanefbsd@gmail.com>
r207390:
Default connection timeout is way too long. To make it shorter we have to make socket non-blocking, connect() and if we get EINPROGRESS, we have to wait using select(). Very complex, but I know no other way to define connection timeout for a given socket.
Reported by: hiroshi@soupacific.com
show more ...
|
#
5571414c |
| 29-Apr-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Fix a problem where hastd will stuck in recv(2) after sending request to secondary, which died between send(2) and recv(2). Do it by adding timeout to recv(2) for primary incoming and outgoing socket
Fix a problem where hastd will stuck in recv(2) after sending request to secondary, which died between send(2) and recv(2). Do it by adding timeout to recv(2) for primary incoming and outgoing sockets and secondary outgoing socket.
Reported by: Mikolaj Golub <to.my.trociny@gmail.com> Tested by: Mikolaj Golub <to.my.trociny@gmail.com> MFC after: 3 days
show more ...
|
#
2b98f840 |
| 18-Apr-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
MFC r204076,r204077,r204083,r205279:
r204076:
Please welcome HAST - Highly Avalable Storage.
HAST allows to transparently store data on two physically separated machines connected over the TCP/IP
MFC r204076,r204077,r204083,r205279:
r204076:
Please welcome HAST - Highly Avalable Storage.
HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master-Backup, Master-Slave) configuration, which means that only one of the cluster nodes can be active at any given time. Only Primary node is able to handle I/O requests to HAST-managed devices. Currently HAST is limited to two cluster nodes in total.
HAST operates on block level - it provides disk-like devices in /dev/hast/ directory for use by file systems and/or applications. Working on block level makes it transparent for file systems and applications. There in no difference between using HAST-provided device and raw disk, partition, etc. All of them are just regular GEOM providers in FreeBSD.
For more information please consult hastd(8), hastctl(8) and hast.conf(5) manual pages, as well as http://wiki.FreeBSD.org/HAST.
Sponsored by: FreeBSD Foundation Sponsored by: OMCnet Internet Service GmbH Sponsored by: TransIP BV
r204077:
Remove some lines left over by accident.
r204083:
Add missing KEYWORD line.
Pointed out by: dougb
r205279 sys:
Simplify loops.
show more ...
|
Revision tags: release/7.3.0_cvs, release/7.3.0 |
|
#
1a0fda2b |
| 04-Mar-2010 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
IFH@204581
|
#
32115b10 |
| 19-Feb-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Please welcome HAST - Highly Avalable Storage.
HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master
Please welcome HAST - Highly Avalable Storage.
HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master-Backup, Master-Slave) configuration, which means that only one of the cluster nodes can be active at any given time. Only Primary node is able to handle I/O requests to HAST-managed devices. Currently HAST is limited to two cluster nodes in total.
HAST operates on block level - it provides disk-like devices in /dev/hast/ directory for use by file systems and/or applications. Working on block level makes it transparent for file systems and applications. There in no difference between using HAST-provided device and raw disk, partition, etc. All of them are just regular GEOM providers in FreeBSD.
For more information please consult hastd(8), hastctl(8) and hast.conf(5) manual pages, as well as http://wiki.FreeBSD.org/HAST.
Sponsored by: FreeBSD Foundation Sponsored by: OMCnet Internet Service GmbH Sponsored by: TransIP BV
show more ...
|
#
32115b10 |
| 19-Feb-2010 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Please welcome HAST - Highly Avalable Storage.
HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master
Please welcome HAST - Highly Avalable Storage.
HAST allows to transparently store data on two physically separated machines connected over the TCP/IP network. HAST works in Primary-Secondary (Master-Backup, Master-Slave) configuration, which means that only one of the cluster nodes can be active at any given time. Only Primary node is able to handle I/O requests to HAST-managed devices. Currently HAST is limited to two cluster nodes in total.
HAST operates on block level - it provides disk-like devices in /dev/hast/ directory for use by file systems and/or applications. Working on block level makes it transparent for file systems and applications. There in no difference between using HAST-provided device and raw disk, partition, etc. All of them are just regular GEOM providers in FreeBSD.
For more information please consult hastd(8), hastctl(8) and hast.conf(5) manual pages, as well as http://wiki.FreeBSD.org/HAST.
Sponsored by: FreeBSD Foundation Sponsored by: OMCnet Internet Service GmbH Sponsored by: TransIP BV
show more ...
|