Jani M. wrote:
As far as I have seen, all the segfaults seem to be mgv related, but not at the exact same spot.

I've still been trying to identify the root cause of the crashes, but unfortunately haven't had success yet. Some of the things I've tried so far:

- Different PerlInterpScope settings
- Disabling KeepAlive connections
- Switching Perl code where possible to run at different handler phases
- Disabling mod_cache
- and many other things I can't even remember anymore :)

As I have the setup running on several servers, I've been able to compare how the segfaults relate to server load. This is where things start to get more interesting.

On a server handling somewhere around 30 requests/s during peaks, I don't see almost any segfaults at all. Maybe one or two max per day, sometimes none. However, a server doing around 200 requests/s during the daytime crashes a lot more frequently - I've seen upto 150 segfaults per day, with the average being somewhere around 100.

To me atleast this looks like classic signs of problems related to race conditions. As the server load increases, so does the likelyhood of triggering such an event. This probably also explains why I can't reproduce the segfaults in my test environment - I don't have enough power there to generate these levels of requests/s. Does this sound like a feasible conclusion?

All tips in debugging this further are welcome - I'm really not that familiar with threaded coding.

One odd thing I noticed is that I have configured mod_perl to run 4 interpreters per process, yet I always see only 2 perl threads in the core dumps. Is there a reason for this?

This is still bothering me - does anyone have any theories yet as to why this is?

Cheers,
-- Jani

Reply via email to