Messages in this thread | | | Date | Fri, 15 May 2009 19:15:35 -0600 | From | Robert Hancock <> | Subject | Re: patch related to SIGSEGV handling in multiple threads and hung threads |
| |
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.
| |