in reply to mod_perl, threads, and blank pages
What we found is that Perl is not thread-safe. Let me repeat that: PERL IS NOT THREAD-SAFE! I say this with emphasis because after several long nights hunting down segfaults in the system, turning on debugging, adding evals to trap errors, banging my head, I came across this in the log:
Common::Logger is our internal logging package. log_stuff is the logging function. It calls CORE::caller(). This blew up. Evidently, the thread boundary is a bit like an event horizon and caller can't cross it without potentially breaking. I saw this message a few more times before we ditched threads entirely.Bizarre ARRAY copy in caller() at Common::Logger::log_stuff ...
I strongly encourage you to investigate the possibility of dead threads fouling your app. Then look at alternatives to a threaded model. We moved to a multi-tiered Apache platform. We have an Apache "front-end" that talks to an Apache "back-end" (which in turn can talk to itself; we have layers of parallel and serially parallel processing).
When we mentioned to merlyn, TheDamien, and Nick Clark that we were looking at the threaded approach when we were at OSCON 2005, they all pretty much wished us luck. I do the same for you now.
Sr. Software Engineer, DAS Lead
WhitePages.com, Inc.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: mod_perl, threads, and blank pages
by BrowserUk (Patriarch) on May 09, 2006 at 02:47 UTC | |
Re^2: mod_perl, threads, and blank pages
by richard5mith (Beadle) on May 08, 2006 at 22:55 UTC |