0

I have taken over development of a major Drupal 6 site (I'm not a Drupal newbie by any means) - I did quite a lot of the original work and never had the following problem, however there have been changes since then:

Any admin function which involves building large data structures from all modules causes the dev site to silently quit. There are no Apache or PHP errors, just:

Unable to load the webpage because the server sent no data. Error code: ERR_EMPTY_RESPONSE

That's the result in Chrome, IE fails similarly. It's definitely happening in the code.

I can't rebuild menus, access the module page or enable the Update module. The rest of the site works fine.

I analysed the problem down to the point where I have established the crash definitely occurs when it's building big data structures. It has about 360 modules and when building the module page can get to 252 before it simply dies.

I running on WAMP over W7 with PHP 5.3.13 and Apache 2.2.22 Any ideas on what's causing it and if it's solvable?

(Any comment like "don't use windows" or "use fewer modules" are not very helpful at this point.)

EDIT: Additional data. I was wrong about the lack of Apache error messages, although it's not very helpful:

[Fri Aug 02 22:21:09 2013] [notice] Server built: May 13 2012 19:41:17
[Fri Aug 02 22:21:09 2013] [notice] Parent: Created child process 10076
[Fri Aug 02 22:21:09 2013] [notice] Child 10076: Child process is running
[Fri Aug 02 22:21:09 2013] [notice] Child 10076: Acquired the start mutex.
[Fri Aug 02 22:21:09 2013] [notice] Child 10076: Starting 64 worker threads.
[Fri Aug 02 22:21:09 2013] [notice] Child 10076: Starting thread to listen on port 80.
[Fri Aug 02 22:21:09 2013] [notice] Child 10076: Starting thread to listen on port 80.
>>>> ERROR MESSAGE NEXT
[Fri Aug 02 22:23:08 2013] [notice] Parent: child process exited with status 255 -- Restarting.
<<<< 
[Fri Aug 02 22:23:08 2013] [notice] Apache/2.2.22 (Win64) PHP/5.3.13 configured -- resuming normal operations
[Fri Aug 02 22:23:08 2013] [notice] Server built: May 13 2012 19:41:17

Seems there are a multitude of possibilities for this and it may be related to this: What can cause Drupal to crash Apache?

  • 1
    What's the PHP memory limit set at? Increase it temporarily, restart Apache and see if that makes a difference – Clive Aug 2 '13 at 16:55
  • It's set to 1024MB. This is my standard dev environment (my day job is writing Drupal code) so I have stupid memory allocation. 'Fraid it's not that. – Adaddinsane Aug 2 '13 at 20:58
  • (And I did double it just as a test - not that I was expecting it to make a difference, and it didn't.) – Adaddinsane Aug 2 '13 at 21:00
0

Okay. I do not understand why but it seems the answer here actually is the answer in the other question. Here's what you do:

In Apache's httpd.conf find the line

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf

And un-comment it so the httpd-mpm.conf file is run. Then load up that file and go to the bottom where you'll see this:

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
<IfModule mpm_winnt_module>
    ThreadStackSize      8388608
    ThreadsPerChild      150
    MaxRequestsPerChild    0
</IfModule>

Not including the ThreadStackSize - add that line with the nice big number. And the crash stops. Essentially I was right in my diagnosis - the data structure being built is too big but it's too big for the thread, not the overall memory allocation.

The reason I'm confused is that, as far as I can see, that module is not loaded and run in Apache, but maybe it's not configurable and always runs.

Anyway this works.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.