This is my error log. It doesn’t look like there is any useful information in here :
[Tue Feb 09 09:45:41 2010] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Tue Feb 09 09:45:41 2010] [notice] Apache/2.2.11 (Win32) PHP/5.2.9 configured -- resuming normal operations
[Tue Feb 09 09:45:41 2010] [notice] Server built: Dec 10 2008 00:10:06
[Tue Feb 09 09:45:41 2010] [notice] Parent: Created child process 1396
[Tue Feb 09 09:45:42 2010] [notice] Child 1396: Child process is running
[Tue Feb 09 09:45:42 2010] [notice] Child 1396: Acquired the start mutex.
[Tue Feb 09 09:45:42 2010] [notice] Child 1396: Starting 64 worker threads.
[Tue Feb 09 09:45:42 2010] [notice] Child 1396: Starting thread to listen on port 85.
Actually the logs tell you a lot. You can see from the “child process existed with status 3221225477” that a problem occurred. 3221225477 (decimal) == 0xC0000005 (hex) which is a “general protection fault” or Segmentation Fault. Essentially the application (Apache) attempted to access a memory region that was either not mapped or was part of the protected kernel address space. A normal/clean exit status is 0 (zero). Anything other than zero is usually, but not always, bad.
If you Google that string and error code you’ll see most refer to it being a PHP bug, fixed in a later release, but I wouldn’t discount a libmysql bug from the equation either. On a UNIX based system you’d get an application core dump. That core dump will show you the stack leading up to the problem and argument(s) passed in to the function which generated the error. Not sure if/how to do that on Windows.
Although the bug will be within the PHP or MySQL libraries the bug is triggered by bad code/arguments being passed in to them. Given that Magento stores almost all of the data in the database, the most likely cause is either a corrupt database or there’s something within the database that cannot be interpreted correctly. Possibly some non-default locale characters. This is most likely if you’re not using default locales, or your locale is different to MySQL for example.
Is your database new or did you restore or import the data from elsewhere?
Here’s a few things to try:
Make sure that the Apache is using the correct libraries (ie: those distributed with the WAMP distro and not something sitting in your C:\Windows\System32 directory, or similar).
If your WAMP package isn’t running the latest code then I’d recommend updating it. If you can prevent Apache from crashing then you might be able to find out what’s causing the problem.
If the problem is MySQL related, check the MySQL logs. Typically these will show the SQL being executed at the time of the problem. Those logs will give you an idea as to which table(s) you need to take a closer look at. You can run the SQL manually from the command line (or through phpMyAdmin) and see if you can get the SQL down to a simple SELECT statement that triggers the problem. If you can do that it’ll show you where in the database your problem is.
To eliminate your OS from the problem grab a copy of VirtualBox, install WinXP (use the key from your computer), install WAMP or XAMPP and install Magento from scratch. If that works, you can then backup the working database, backup your production database, and restore it to your Magento installation running in VirtualBox. If that works you know it’s your OS. If that causes the same problem you know it’s your database.
PS. I started with XAMPP, but unfortunately I had the newest version of PHP which wouldn’t work with Magento.
Not sure what your problem is/was with XAMPP but I’ve got the latest 1.7.3 version running in a Virtual Box WinXP Environment and Magento 1.3.x runs just fine.