[IC] Internal server error...

Steffen Dettmer interchange-users@interchange.redhat.com
Fri Nov 9 03:14:00 2001


* Glenn McCalley wrote on Mon, Nov 05, 2001 at 10:39 -0800:
> ...but still 500 error.  Also, 5 minutes after the failure, the interchange
> error.log shows "Spurious PID file for process xxxxx supposedly running 301
> seconds".  I suppose this is whatever task was forked and died being killed
> for running too long?

Looks so. Usually it should live a few seconds only. Couldn't you
strace the process in that condition (before the 300 seconds
timeout of course)? For that, just give a "strace -p <pid>". It
procduces a lot of output. I would expect that it consists of a
very few calls repeating always. Maybe you could mail those 2 or
5 lines repeating or describe shortly what you see (i.e. "many
open()s and close() on the same files x,y and z" or so).

> Are there other programs where logging should be uncommented?  Or
> everywhere?  Or is there a way to enable some logging in the
> task that's being left behind?
 [...] 

Would be a little late in that state :) Usually I would suggest
to attach a gdb (gdb <binary> <pid>), but since it's perl it may
not be useful (except you like to debug the perl binary itself
:)). Maybe you can find answers when starting IC with --debug to
prevent it from forking with "perl -d" ("perl -d interchange -r"
or so). Enter "c" to continue. Wait. Make the request or
whatever. In the condition, hit STRG-C. Give "T" (uppercase) to
get a backtrace (this shows the function which is active
currently). 

I have never tried this with Interchange - it may be not working
at all. This is just a hint, hope it helps.

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.