ACK, the patch fixes the problems spotted with IPC shutdown.

There is only one segfault left to address and it is triggered only when
corosync receives a kill -TERM.

Fabio

On 1/8/2010 12:22 PM, Jan Friesse wrote:
> Related to https://bugzilla.redhat.com/show_bug.cgi?id=547511
> 
> This patch solves problem in little different (I hope better) way.
> 
> It fixes problem with sem_destroy + sem_wait and also solves hard freeze
> because malloc(*) + other functions are called in sighandler. This is
> reason, why special thread is created and only purpose in life of these
> thread is to wait for semaphore and begin shutdown sequence.
> 
> According to Fabbio, there are still some segfaults left on Fedora 12.
> 
> Regards,
>    Honza
> 
> (*) according to glibc documentation, malloc and free can be called in
> signal handler, but in such case, I really don't understand this:
> (gdb) bt
> #0  0x00de1424 in __kernel_vsyscall ()
> #1  0x002c7e43 in __lll_lock_wait_private () from /lib/libc.so.6
> #2  0x00250b94 in _L_lock_9571 () from /lib/libc.so.6
> #3  0x0024ebf4 in malloc () from /lib/libc.so.6
> #4  0x08054d26 in hdb_handle_create (handle_database=0x805d748,
> instance_size=12, handle_id_out=0x805fa48) at ../include/corosync/hdb.h:178
> #5  0x08055422 in schedwrk_create (handle=0x805fa48,
> schedwrk_fn=0x8050bee <unlink_all_schedwrk_handler>, context=0x805d5a0)
> at schedwrk.c:104
> #6  0x08050d33 in corosync_service_unlink_all (api=0x805d5a0,
> unlink_all_complete=0x804b3fb <unlink_all_completed>) at service.c:583
> #7  0x0804b491 in corosync_shutdown_request () at main.c:171
> #8  0x0804b508 in sigintr_handler (num=2) at main.c:195
> #9  <signal handler called>
> #10 0x0024ca2b in _int_malloc () from /lib/libc.so.6
> #11 0x0024ebfe in malloc () from /lib/libc.so.6
> #12 0x0023a7df in __fopen_internal () from /lib/libc.so.6
> #13 0x0023a8ac in fopen@@GLIBC_2.1 () from /lib/libc.so.6
> #14 0x0053352a in pid_to_name (pid=18300, out_name=0xbfda2016 ,
> name_len=32) at coroipcs.c:1515
> #15 0x00533654 in coroipcs_init_conn_stats (conn=0x82d1bb8) at
> coroipcs.c:1557
> #16 0x00533a29 in coroipcs_handler_dispatch (fd=10, revent=1,
> context=0x82d1bb8) at coroipcs.c:1670
> #17 0x0804d498 in corosync_poll_handler_dispatch
> (handle=1197105576937521152, fd=10, revent=1, context=0x82d1bb8 at
> main.c:911
> #18 0x0057b01b in poll_run (handle=1197105576937521152) at coropoll.c:394
> #19 0x0804ec8e in main (argc=1, argv=0xbfda3434) at main.c:1498
> 
> 
> 
> _______________________________________________
> Openais mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/openais

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to