Re: patch related to SIGSEGV handling in multiple threads and hung   threads
From: Robert Hancock
Date:  Fri May 15 2009 - 21:15:49 EST
Sudarshan Soma wrote:
Hi ,
I have a program which will create multiple threads. One of the thread
receives SIGSEGV and it prints stacktrace in its handler and calls
_exit(-1). The call to exit wont terminate all threads in  a process
and hence thread hangs here. This causes resouce leaks and other
problems. It is seen only on linux 2.4.20.
For printing stacktrace it uses
__builtin_return_address and __builtin_frame_address
The same program works fine on linux 2.6.26 kernel. It  will exit the
whole process when one of its thread dies as above.
Please let me know the patch details or any workaround, if any. This
is a bit urgent, so please let me know for any pointers , if any
Thanks and Best Regards,
Pavan.
That doesn't seem surprising, the old LinuxThreads thread implementation 
normally used with the 2.4 kernels was pretty poor. However it would 
likely be better to re-raise the signal rather than trying to exit out 
of the signal handler.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/