"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