mirror_corosync/exec
Steven Dake d99fba72e6 Resolve abort during simulatenous stopping of atleast 4 nodes
consider 5 nodes.

node 3,4 stopped (by random stopping) node 1,2,5 form new configuration
and during recovery node 1 and node 2 are stopped (via service service
corosync stop).  This causes 5 never to finish recovery within the timeout
period, triggering a token loss in recovery.  Bug #623176 resolved an assert
which happens because the full ring id was being restored.  The resolution
to Bug #623176 was to not restore the full ring id, and instead operate
(according to specifications) the new ring id.  Unfortunately this exposes
a problem whereby the restarting of nodes 1-4 generate the same ring id.
This ring id gets to the recovery failed node 5 which is now in gather,
and triggers a condition not accounted for in the original totem specification.

It appears later work from Dr. Agarwal's PHD dissertation considers this
scenario.  That solution entails rejecting the regular token in the above
condition.  Since the ring id is also used to make decisions for commit token
acceptance, we must also take care to reject the regular token in all cases
after transitioning from OPERATIONAL.

Signed-off-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
2011-03-21 09:26:35 -07:00
..
.gitignore Add .gitignore files. 2010-10-21 07:43:46 -07:00
apidef.c add __attribute__((noreturn)) to functions that always exit. 2010-05-19 04:34:53 +00:00
apidef.h remove empty lines at end-of-file 2009-04-22 08:04:06 +00:00
coroipcs.c Add calls to pthread_attr_destroy(). 2011-02-21 12:14:07 -07:00
coroparse.c Remove checking of sub parameters in service.d files. 2010-08-24 18:45:43 +00:00
coropoll.c POLL: gracefully handle running out of file descriptors. 2010-08-25 01:07:37 +00:00
crypto.c cov 10413: crypto init a variable. 2010-05-16 21:36:51 +00:00
crypto.h remove all trailing blanks 2009-04-22 08:03:55 +00:00
evil.c pass transitional members into the sync_init() callbacks. 2010-02-04 00:18:51 +00:00
evil.h Follow synchronization model of event service so corosync without openais 2009-06-28 04:50:18 +00:00
fsm.h Add a Finite State Machine.(fsm.h) 2010-09-27 21:11:04 +00:00
logsys.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
main.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
main.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
mainconfig.c Fix logging_daemon config parser code. 2010-07-19 06:36:48 +00:00
mainconfig.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
Makefile.am Add the UDPU transport 2010-11-18 14:21:30 -07:00
objdb.c objdb: destroy all handles in _clear_object 2011-02-24 12:15:01 +01:00
quorum.c don't include <signal.h> when it's not used 2009-05-18 16:41:46 +00:00
quorum.h quorum.h (quorum_set_quorate_fn_t): make first param const 2009-04-08 06:43:03 +00:00
schedwrk.c Add schedwrk_create_nolock function 2010-01-22 09:45:29 +00:00
schedwrk.h Add schedwrk_create_nolock function 2010-01-22 09:45:29 +00:00
service.c Add monitoring and watchdog services. 2010-09-27 21:12:03 +00:00
service.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
sync.c SYNC: always call sync_aborted() in sync_confchg_fn(). 2010-07-17 04:59:40 +00:00
sync.h pass transitional members into the sync_init() callbacks. 2010-02-04 00:18:51 +00:00
syncv2.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
syncv2.h pass transitional members into the sync_init() callbacks. 2010-02-04 00:18:51 +00:00
timer.c Add calls to pthread_attr_destroy(). 2011-02-21 12:14:07 -07:00
timer.h Support for monotime timer 2009-07-27 10:12:55 +00:00
tlist.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totemconfig.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
totemconfig.h remove all trailing blanks 2009-04-22 08:03:55 +00:00
totemiba.c Allocate packet buffers in the transport drivers 2011-03-11 20:38:28 -07:00
totemiba.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totemip.c Check for a properly configured multicast address. 2010-09-27 22:41:26 +00:00
totemmrp.c Add the UDPU transport 2010-11-18 14:21:30 -07:00
totemmrp.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totemnet.c Allocate packet buffers in the transport drivers 2011-03-11 20:38:28 -07:00
totemnet.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totempg.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
totemrrp.c Allocate packet buffers in the transport drivers 2011-03-11 20:38:28 -07:00
totemrrp.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totemsrp.c Resolve abort during simulatenous stopping of atleast 4 nodes 2011-03-21 09:26:35 -07:00
totemsrp.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totemudp.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
totemudp.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
totemudpu.c Fix some "set but not used" warnings [-Wunused-but-set-variable] 2011-03-16 07:13:42 +11:00
totemudpu.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
tsafe.c Fix few xopen tsafe issues. 2010-08-31 20:16:20 +00:00
tsafe.h Add tsafe (thread safe) file to catch unsafe function calls. 2010-03-03 01:27:37 +00:00
util.c Ensure that strings are null terminated after strncpy(). 2011-03-07 08:30:03 -06:00
util.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
vsf_quorum.c Reduce the number of times the quorum message is displayed. 2010-02-26 15:30:38 +00:00
vsf_ykd.c Fix a crash in YKD 2010-04-20 07:27:14 +00:00
vsf.h Convert existing documentation to doxygen format. 2011-03-12 15:03:16 +11:00
wthread.c Rename queue datastructure to cs_queue data structure because some fail 2009-06-07 00:47:56 +00:00
wthread.h remove all trailing blanks 2009-04-22 08:03:55 +00:00