if a lock wait child died/finished, we could have released the lockwait handle and...
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 22 Oct 2009 02:41:28 +0000 (13:41 +1100)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 22 Oct 2009 02:41:28 +0000 (13:41 +1100)
commite01ab46bafad09a5e320d420734db129d35863bc
treeadc042ed6eeee7726e070fb290b67a252deda996
parent27296a47b3d057a6729287acf128b2b67775ecde
if a lock wait child died/finished, we could have released the lockwait handle and set it to NULL before we call the destructors for releaseing the waiters.

The waiters reference the locakwait handle in order to remove itself from the li
nked list which caused a SEGV.

We dont actually need to remove ourselves from this list here since
if the parent freeze_handle holding the list is freed, then all waiters are rele
ased as well, and the only place we actually need to relink the waiter is in ctd
b_freeze_lock_handler, where we want to respond back to the clients and release
the waiters  but we still want to keep the freeze_handle hanging around.
server/ctdb_freeze.c
server/ctdb_monitor.c