Detecting runaway process

Detecting runaway process

Nadav Har'El nyh at math.technion.ac.il
Thu Nov 17 16:25:52 IST 2011


On Thu, Nov 17, 2011, ik wrote about "Re: Detecting runaway process":
> Can't use gdb, it's a Ruby daemon (I didn't wrote it).
> And strace gives different outputs on each crash :(
> 
> I can't figure out what is wrong.

The first step is to figure out if it exits because of a signal (e.g.
SIGSEGV) or because it decides to exit on its own. Try to run it in a
shell prompt, not in the background, and see if you see any message when
it ends, and see what the exit status ($?) is at the end of the run.

While it is running, see if its memory use is growing out of control
(use ps or top to find this out). Perhaps it uses too much memory and
gets killed by the oom-killer.

See if you see any relevant messages in /var/log/messages.

Try with strace, what is the last few lines? Is there an exit() at the
end?
If it appears it just exists on its own accord, maybe this is not a bug,
but a feature? :-) Look at the code and try to find any place it might
exit without any message. In certain languages (I don't know about Ruby)
it is possible for uncought exceptions to kill the program without a
message - can it be the cause here too?

Anyway, good luck.  In general, it's NOT FUN to debug a program that
someone else wrote... There is no magic bullet, just sweat.


-- 
Nadav Har'El                        |                  Thursday, Nov 17 2011, 
nyh at math.technion.ac.il             |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |Isn't Disney World a people trap operated
http://nadav.harel.org.il           |by a mouse?



More information about the Linux-il mailing list