"White Screen of Death"
Chisel Wright
chisel at herlpacker.co.uk
Tue Jan 22 13:00:23 GMT 2008
I'm sorry for posting something on-topic. I'm also sorry for being a bit
vague ... I'm just posting to see if I'm alone in this particular
suffering.
I'm working on $project at $orkplace - a project that was in common and
general use long before I arrived.
It's Apache1, mod_perl, TT and straight DBI.
As part of a recent extension to $project I added DBIx::Class to the
mix. (I don't know if this is related)
In the "good old days", if I messed up I'd get an error or warning in
the logs .. the usual plethora of messages I'd expect to see from my own
typos.
At some point, at _roughly_ the same time in introduced DBIC to the mix
things changed. All of a sudden, a large proportion of errors started
producing what I lovingly refer to as the "White Screen Of Death":
nothing but a white page in the browser, and no messages in the logs.
Wrapping stuff in an eval{...} at high-levels doesn't seem to catch
anything. I've had to start adding warns and lower-level eval{...}
blocks just to find out where the error is occurring.
The total lack of output makes it hard to know where to start looking.
My gut-feeling is that DBIC is catching errors itself, and somehow
preventing them from propagating them back up to me.
With that hypothesis in mind I've added this to my $project/Schema.pm:
__PACKAGE__->exception_action(
sub{
__PACKAGE__->stacktrace(1);
xt_logger->warn(@_);
__PACKAGE__->stacktrace(0);
}
);
Just trying to force _something_ to get reported.
So, has anyone seen anything similar to this at all? Any ideas where to
look next time I make a stupid thinko that results in the WSoD?
Chiz
--
Chisel Wright
e: chisel at herlpacker.co.uk
w: http://www.herlpacker.co.uk/
Two Eskimos sitting in a kayak were chilly; but when they lit a fire in the
craft, it sank, proving once and for all that you can't have your kayak and
heat it.
More information about the london.pm
mailing list