Messages in this thread | | | Subject | Re: core dumps from multi-threaded (kernel cloned) processes | Date | Fri, 14 Nov 1997 11:42:38 -0600 (CST) | From | kwrohrer@enteract ... |
| |
And lo, Philip Gladstone saith unto me: > The current behaviour of Linux 2.0.x (and I think 2.1.x) when > a glibc multithreaded process crashes is not useful. [The > multithreading is implemented by means of cloning]. Linux > dumps (essentially) the initial thread rather than the crashing > thread. Why? [snip] > I'm note sure what the right approach to fix this is. My inclination > would be to stop all the other processes (those which share the mmap), > and generate a threaded core dump. Then mark all these processes as > not dumpable, and then continue them. This is somewhat broken, > but I don't know what the right approach is. A refinement: assuming that you dump the register contents, stack pointer included, for all the threads in the core created by the dying thread, there's no reason to mark the others non-dumpable, assuming they survive the experience. If one were to dump to "core.%d",pid_of_dead_thread, instead of just to "core", that would be another reason not to mark the other threads non-dumpable. Or, kill the whole heavyweight process after dumping core from the perspective of the crashed thread.
Keith
| |