[Saw your this exact message on the users list, and hoped that someone who actually uses win32 will be able to give some advise, I guess that's not the case]
We are running into some trouble porting an existing PERL app running under an older cgi accelerator (Blue Titan's Velocigen) on IIS to run under Apache2/mod_perl(1.99) on Win32. We are testing on a Dell dual P4 xeon(ht), 1GB ram, running win2k3. The DB server is on a separate host, connecting via DBI/DBD::ODBC.
Our application consists of a handful of perl scripts (.cat files, essentially .pl's) that call our own libraries (standard .pm files). The webapp runs fine under our install (Pre-compiled binary: Perl-5.8-win32-bin-0.8.exe through perl.apache.org) until we place a load on the server (using jMeter).
Under load we are seeing multiple Apache restarts in the error logs
(see below). The error produced ("Parent: child process exited with
status 3221226324 -- Restarting.")
It's always fun with win32, which never gives proper error messages.
I'd start with figuring out what 3221226324 means. Ask on the apache users list? This is a generic Apache message, so it's not on our ground.
I can point you to server/mpm/winnt/mpm_winnt.c:
else {
int i;
restart_pending = 1;
ap_log_error(APLOG_MARK, APLOG_NOTICE, APR_SUCCESS, ap_server_conf,
"Parent: child process exited with status %u -- Restarting.", exitcode);
It gets the message a few lines above, by calling
if (!GetExitCodeProcess(event_handles[CHILD_HANDLE], &exitcode)) {Once you figure out what that number means you will hopefully know the cause of the process exit.
Alternatively (or may be that process will give nothing useful), try to shrink your script to the very possible minimum and add debug prints and in that way you will see what was the last debug statement that was successful before dieing.
when Apache dies led us to several mail list threads discussing 'non thread safe' modules (loaded into Apache) killing it in a similar way (with different status codes)...
We searched through our various modules in use (Apache, Perl 5.8, mod_perl, Apache::DBI, DBI, DBD::ODBC, DBD::MySQL, Date::Calc, Net::SMTP) to find if any weren't thread safe. Everything looked clean. We couldn't find any reason to believe any of the modules weren't thread safe.
Looks clean? You mean you read through the XS and C code? Can you please share how did you come up with that conclusion? (I'd love to learn how to do that)
I'd also suggest to get rid of these errors:
> [Tue Nov 23 11:30:47 2004] [error] Can't coerce array into hash at > (null) line 589.\n > [Tue Nov 23 11:30:47 2004] [error] Can't coerce array into hash at > (null) line 589.\n
It's quite possible that those are related. Add:
use Carp;
$SIG{__DIE__} = \&Carp::confess;at startup.pl, so you can see where it comes from (must be some eval).
-- __________________________________________________________________ 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
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
