1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00
samba-mirror/ctdb
Rusty Russell ab675516cc eventscript: fix bug in timeouts on forced eventscripts. Again.
In 15bc66ae801b0c69, Ronnie fixed a double-free race.  The problem was that
ctdb_run_eventscripts() hands a context to ctdb_event_script_callback() to
hang its data off, which gets freed in the callback.  This particularly
hurt in ctdb_event_script_timeout.

There's nothing wrong with this, but obviously we should make the callback
call last of all.  At the time, ctdb_event_script_timeout() carefully
extracted everything from the struct ctdb_event_script_state before
calling ->callback.

This was cleaned up in 64da4402c6ad485f (Ronnie again), and now state
was referred to after the callback again.  But the same change introduced
a direct use-after-free bug which caused an occasional oops.

So in our last episode (eda052101728cf92) Volker fixed this, and Michael
committed it.

But we still have the double free bug which 15bc66ae801b0c69 was supposed
to fix!  Let's try to fix this in a more permanent way, but always doing
the callback from the destructor.  This means we need to hold the status,
and don't send the KILL signal if ->child is set to 0.

Finally, add a comment about freeing ourselves in run_eventscripts_callback
and the structure definition.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>


(This used to be ctdb commit b90bdb07c1f6913ddbf11bde9684bdc8af61c549)
2009-11-24 11:06:53 +10:30
..
client client: randomize the transaction_start retry loop: 2009-10-30 22:02:21 +11:00
common Suggestion from Volker, 2009-10-26 12:20:52 +11:00
config Now vaguely tested initscript updates. 2009-11-19 16:48:19 +11:00
doc update the manpage for "update" to indicate the "time since last" indicates 2009-10-29 10:32:28 +11:00
ib Whitespace changes and using the CTDB_NO_MEMORY() macro changes to 2009-05-21 11:49:16 +10:00
include rework and simplify the eventscript handling 2009-11-25 11:00:11 +10:30
lib for debugging 2009-10-27 13:18:52 +11:00
packaging version 1.0.104 2009-11-06 11:16:05 +11:00
server eventscript: fix bug in timeouts on forced eventscripts. Again. 2009-11-24 11:06:53 +10:30
tcp tcp: don't log an error when we succefully bind to the desired address 2009-10-26 14:20:23 +11:00
tests Test suite: Fix the NFS and CIFS tickle tests. 2009-11-13 09:44:34 +11:00
tools suggestion from Christian, 2009-11-06 08:19:32 +11:00
utils From William Jojo <w.jojo[AT]hvcc.edu> 2009-06-04 09:41:05 +10:00
web fix the git path to the repository 2009-05-25 12:15:13 +10:00
.bzrignore more code rearrangement 2007-06-07 22:16:48 +10:00
.gitignore From Mathieu Parent <math.parent@gmail.com> 2009-04-08 09:21:11 +10:00
aclocal.m4 initial version 2006-11-18 10:41:20 +11:00
autogen.sh From Mathieu Parent <math.parent@gmail.com> 2009-04-08 09:21:11 +10:00
config.guess Revert "try to restart statd everytime it fails, not just the first time" 2009-09-15 19:33:35 +10:00
config.mk minor back-merge from samba4 2007-07-10 18:13:47 +10:00
config.sub Revert "try to restart statd everytime it fails, not just the first time" 2009-09-15 19:33:35 +10:00
configure.ac remove the obsolete ipmux component. 2009-05-25 12:33:52 +10:00
configure.rpm fixed permissions on configure.rpm 2008-04-22 16:48:25 +02:00
COPYING add a licence file 2009-02-07 08:10:34 +11:00
ctdb.pc.in (This used to be ctdb commit b0718551f55d5da9be0e6aba233f57c1ff8509be) 2009-04-08 09:14:20 +10:00
install-sh initial version 2006-11-18 10:41:20 +11:00
Makefile.in disabel the multipath eventscript by default 2009-10-26 10:22:00 +11:00