Jean-Sebastien Guay wrote:
Stas,

Thanks for trying out my code.


Jean-Sebastien, are you *sure* that what crashes is apache and not

your


client? it seems that you have the client crashing if removing <nobr>

changes


everything. What's your error_log says?


My client is IE, and it stays open and responsive after the crash
message. The crash message itself is a dialog box titled "Apache.exe -
Application Error"... That's pretty much a dead giveaway that it isn't
my client that's crashing.

My error_log says:

       [Tue Aug 05 11:10:58 2003] [notice] Parent: child process exited
with status 3221225725 -- Restarting.
       [Tue Aug 05 11:11:00 2003] [notice] Parent: Created child process
1360

so I'm pretty sure it's either Apache or the Perl instance started by
Apache that's crashing. What's more, from the command line and from
normal CGI, the same script (with identical output) runs without any
crash - client or otherwise.

Good, just a sanity check. it sounds silly that changing an html will break the server, but anything could happen. Is it possible that the broken(?) html makes IE do silly things, that cause the server crash in the afteraction? e.g. I'd check the access_log to see whether it issues only one request or more.


Also make sure to debug in the single process (thread?) mode (httpd -X)

BTW, I can't reproduce you problem.


That's bad news. Of course, this may be platform-specific... Did you try
on Win32?

I don't have win32.


Where should I go from here? This is really preventing me from using
mod_perl at all. As I said, the same things run without problems in
normal CGI.

I'm not a win32 person, so I'm not quite sure how you debug things there. But what you need to do is to get the server dump the core file, which will tell us where exactly it crushes.


Hopefully Randy will come back from vacation soon and will help you out. Or may be someone else.

You must run your code with warnings
enabled, add to httpd.conf:

PerlSwitches -wT

and you will see:

Variable "$template" will not stay shared at /tmp/CRUSH/index.cgi line

26.


Variable "$vars" will not stay shared at /tmp/CRUSH/index.cgi line 26.

which is probably unrelated to your problem, but it's very bad. Search
perl.apache.org for hints how to resolve the latter.


Thanks for the hint. I just modified my httpd.conf to include the
PerlSwitches line, and I don't get the same warning messages you do...
(actually I don't get any warning message) Is there a reason for this?

It's possible that some of your code or the modules that you use either misuse $^W or trap $SIG{__WARN__} which prevents from warnings to be printed. grep for these two things.


whenever you override $^W, this must be done with:

local $^W = $whatever;

so it won't affect other code. same with $SIG{__WARN__} if possible.

I'd suggest that you first get these warnings working and reported, then you fix your code to avoid these warnings (with the non-crashing version of the template), then move to solve the original problem.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com



Reply via email to