mirror_corosync/exec
Angus Salkeld 5828bee144 aisexec crash on exit
Cause:
As part of its exit procedure, ais cancels its worker thread then manually
processes any outstanding items that were still in the worker thread's queue.
The worker thread has a low priority so normally it does not execute any
further before ais finishes exiting, but if the main thread's exiting is
delayed for any reason, there is a chance the worker thread could execute and
try to process items which have already been processed and freed by the main
thread - often leading to the worker thread seeing NULL data and ultimately
causing a segmentation fault.

Fix:
Modified worker_thread_group_exit() so it does a pthread_join() after the
pthread_cancel() call, so that the worker thread always shuts down cleanly
before the main thread does its cleanup.

Author: Author: Mark McKinstry <mark.mckinstry@alliedtelesis.co.nz>




git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1658 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-20 01:02:43 +00:00
..
apidef.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
apidef.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
coroparse.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
coropoll.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
crypto.c Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
crypto.h Split openais and corosync tree into two seperate repositories. 2008-08-05 13:23:46 +00:00
flow.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
flow.h Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
ipc.c Provide a way to configure (at compile time) message and queue sizes. 2008-08-20 00:57:40 +00:00
ipc.h Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
logsys.c Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
main.c Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
main.h Provide a way to configure (at compile time) message and queue sizes. 2008-08-20 00:57:40 +00:00
mainconfig.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
mainconfig.h Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
Makefile Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
mempool.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
mempool.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
objdb.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
service.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
service.h Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
sync.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
sync.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
timer.c Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
timer.h Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
tlist.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemconfig.c Provide a way to configure (at compile time) message and queue sizes. 2008-08-20 00:57:40 +00:00
totemconfig.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemip.c Finish the renaming of openais to corosync in the tree. 2008-08-15 06:15:26 +00:00
totemmrp.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemmrp.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemnet.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemnet.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totempg.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemrrp.c Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemrrp.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
totemsrp.c Provide a way to configure (at compile time) message and queue sizes. 2008-08-20 00:57:40 +00:00
totemsrp.h Revert patch 1633 which breaks build. 2008-08-14 16:44:26 +00:00
util.c Fix to display strings safely in debug messages. 2008-08-20 01:00:44 +00:00
util.h Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
version.h Split openais and corosync tree into two seperate repositories. 2008-08-05 13:23:46 +00:00
vsf_ykd.c Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
vsf.h Proper rename of openais usage to corosync throughout tree. 2008-08-14 16:54:46 +00:00
wthread.c aisexec crash on exit 2008-08-20 01:02:43 +00:00
wthread.h Split openais and corosync tree into two seperate repositories. 2008-08-05 13:23:46 +00:00