I'm running MediaWiki 1.9.3 on a dual core Windows 2003 server, 2 GB RAM, with Apache 2.2.4 and PHP 5.2.1. (Actually it's a VMware virtual machine.) A few times each day we get this error in the Windows error log:
Faulting application httpd.exe, version 2.2.4.0, faulting module php5ts.dll, version 5.2.1.1, fault address 0x0000ae66
and Apache complains:
[Thu Mar 22 13:21:31 2007] [notice] Parent: child process exited with status 3221226324 -- Restarting. [Thu Mar 22 13:21:32 2007] [notice] Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.1 configured -- resuming normal operations [Thu Mar 22 13:21:32 2007] [notice] Server built: Jan 6 2007 15:20:29 [Thu Mar 22 13:21:32 2007] [notice] Parent: Created child process 3456 PHP Warning: Module 'ldap' already loaded in Unknown on line 0 PHP Warning: Module 'mysql' already loaded in Unknown on line 0 PHP Warning: Module 'mysqli' already loaded in Unknown on line 0 PHP Warning: Module 'PDO' already loaded in Unknown on line 0 PHP Warning: Module 'pdo_mysql' already loaded in Unknown on line 0 [Thu Mar 22 13:21:32 2007] [notice] Child 3456: Child process is running [Thu Mar 22 13:21:32 2007] [notice] Child 3456: Acquired the start mutex. [Thu Mar 22 13:21:32 2007] [notice] Child 3456: Starting 250 worker threads. [Thu Mar 22 13:21:33 2007] [notice] Child 3456: Starting thread to listen on port 443. [Thu Mar 22 13:21:33 2007] [notice] Child 3456: Starting thread to listen on port 80.
and the user gets a browser error page.
I Googled for this and it's a common problem:
http://issues.apache.org/bugzilla/show_bug.cgi?id=41326 http://www.apachelounge.com/forum/viewtopic.php?p=6502 http://www.apachelounge.com/forum/viewtopic.php?p=4785 http://bugs.php.net/bug.php?id=39603
but nobody seems to have a workable solution. I have tried:
- increasing the PHP memory_limit in php.ini, but that didn't help. - Setting Win32DisableAcceptEx as in http://www.apache.org/dist/httpd/binaries/win32/#xpbug, in case that was the problem, but that just crashed the server
Any ideas?
DanB
Daniel Barrett wrote:
I'm running MediaWiki 1.9.3 on a dual core Windows 2003 server, 2 GB RAM, with Apache 2.2.4 and PHP 5.2.1. (Actually it's a VMware virtual machine.) A few times each day we get this error in the Windows error log:
Faulting application httpd.exe, version 2.2.4.0, faulting module php5ts.dll, version 5.2.1.1, fault address 0x0000ae66
PHP can segfault for hundreds of different reasons. You need to isolate it further before you can do anything about it. If you can get a repeatable test case, i.e. a user action which always causes a segfault, then you can debug it from there. Or you could run apache under a debugger and wait for a segfault to occur.
If these kinds of methods aren't practical, then the other option is version-switching voodoo magic. Try various combinations of Apache, PHP, OS and MediaWiki until you find one that works.
-- Tim Starling
Daniel Barrett wrote:
I'm running MediaWiki 1.9.3 on a dual core Windows 2003 server, 2 GB RAM, with Apache 2.2.4 and PHP 5.2.1. (Actually it's a VMware virtual machine.) A few times each day we get this error in the Windows error log:
Faulting application httpd.exe, version 2.2.4.0, faulting module php5ts.dll, version 5.2.1.1, fault address 0x0000ae66
I have solved the problem by upgrading PHP to the latest snapshot of 5.2 from snaps.php.net. Thanks to Tim Starling for suggesting to try other software versions.
To validate the solution, I wrote a script to hit MediaWiki's "Special:Random" page with "wget" 1000 times, and ran 3 of them simultaneously. No errors. Repeated the test. No errors.
I restored the old PHP 5.2.1 and ran the scripts, and got an error in the first 10 seconds.
Case closed (and rejoicing).
DanB
mediawiki-l@lists.wikimedia.org