On Thu, Sep 27, 2001 at 12:12:49PM -0700, Rob Bloodgood wrote: > OK, > I have a major issue with POE, and I want to know how to make it go away. > I'm confident it's there, I just haven't found it yet: > > Every now and then, since my program is (gasp!) not perfect, > some kind of uncaught exception happens. Somebody or something gets an > undef, and my session (which should stick around no matter what, because of > its alias) decides to quit. > > ALL I SEE is: > Sep 27 11:09:50 devel qd[4479]: Exiting > Sep 27 11:09:50 devel qd[4479]: DBFetch is destroyed. > > And all I get to do is go, > WTF???? > > And I try to recreate it, > but the cycle time is many minutes, and I keep putting in debug statements > that say, it's all good. Nothing's wrong. We're fine. Working great. > EXITING. > > How do I make my program, which is using syslog, which DOES catch warnings, > which IS running -w, which DOES bitch about "Use of uninitialized value at > blah...", report the condition that causes the session to exit? > > Or, do you have a strategy for where/how to debug these silent quits? > TRACE_EVENTS doesn't seem to help at all.
TRACE_GARBAGE will show you each session's reference count, and it will tell you when they're destroyed. If your session's exiting with a positive "total refcnt" then something else is killing it. Strange causes that come to mind: some sort of signal is causing its demise. Maybe an uncaught die/croak/exit in a library function? > And what's MOST frustrating is that I'm using RCS on this file, and > examining EVERY change since last checkin doesn't show me where this problem > came from (AND IT WASN'T DOING THIS LAST WEEK!) Sounds like an external condition to me, but maybe not. Turn on ASSERT_DEFAULT, too... that'll enable all sorts of internal consistency checks within POE::Kernel. Maybe it'll catch a bug... -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sourceforge.net
