Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.


I have this in my apace error.log:

[Fri Sep 18 08:10:54 2009] [notice] child pid 9178 exit signal Segmentation fault (11)
[Fri Sep 18 08:11:41 2009] [notice] child pid 9187 exit signal Segmentation fault (11)
[Fri Sep 18 08:12:12 2009] [notice] child pid 9204 exit signal Segmentation fault (11)
[Fri Sep 18 08:12:13 2009] [notice] child pid 9202 exit signal Segmentation fault (11)
[Fri Sep 18 08:14:45 2009] [notice] child pid 9251 exit signal Segmentation fault (11)

It started the same day I made an addition to the vhost.conf file. So I reverted back to the original file did a apache2ctl restart. Unfortunately it's still occurring.

Apache seems to be serving pages OK.

Any ideas?

Cheers,

Nathan.

share|improve this question

6 Answers 6

Nathan, try stopping Apache, and starting it up in the forground (debug, non-threaded), that may leak more clues regarding what is making it segfault.

Having said that, it should not segfault regardless, so it's a bug, nevertheless, it may be something you can fix if you know what's causing it.

apache2 -X

Also (unlikely to reveal the whole reason for this problem), any warnings/errors from...

 apache2ctl -t

...?

Finally, are all the modules you've loaded into Apache "Certified", maybe you can comment about half of them out and see if the problem disappears or not, and carry on with a divide-and-conquer binary search from there.

You might also look for any core dumps produced from the segfault, perhaps in /tmp? If you do find some, try running it through gdb...

gdb apache2 -c /tmp/core.<pid>
share|improve this answer
    
Mostly good advice, but I wouldn't say it's an apache bug unless you've ruled out things like using the wrong mpm or a buggy third-party module. Or permissions on files if threads are running as a different user or something like that. Lots of things to look into really. But yes, start with the debug logs. p.s.: this is why it's good to have apache's config under version control ;) –  Lee B Sep 18 '09 at 10:03
    
Syntax check comes back OK. I don't really want to restart it in debug mode during core hours, I'll try that tonight when the servers less busy. Thanks for you suggestions so far. –  Nathan Friend Sep 18 '09 at 12:55
    
I just read what I wrote - and I agree with Lee - I would not jump into saying it's an Apache bug, what I should have made clear is that the bug is almost certainly owned by one of the 3rd party apache modules loaded, and not Apache itself. :) –  Xerxes Sep 22 '09 at 4:56

Sig11's usually only occur for one of two reasons:

  • Bad programs.

    In the case of Apache it's statistically unlikely to be a bug in the core Apache code.

    It's much more common to be a fault of a module. Either in the way that a module safely deals with exceptions in the code or libraries that it's processing. Or the way in which it interacts with Apache's chosen MPM model. When a module misbehaves in this way it exits uncontrollably before returning data to the Apache child process and thus produces the segfault.

    Review all of the changes that you've made since it last worked. Like Lee B says, this is the perfect example for using version control.

    To complicate matters slightly, you can often produce the same behaviour by issuing a graceful instead of a full restart after making changes to Apache's module setup. You can rule this out by stopping and starting Apache.

  • Bad hardware.

    If you're sure that the errors coincide with your configuration change and you're not seeing any other ill-effects on the system then you can probably rule this out. But it may be worth baring in mind if you run out of other avenues. CPUs and RAM are the typical culprits.

share|improve this answer

I suppose it could be a module loaded having a problem.

I experienced the same behavior with PHP and gettext php extension, it was crashing PHP and therefore the apache's child serving the request.

share|improve this answer
up vote 1 down vote accepted

Finally got this fixed. A simple restart of the server stopped the seg faults.

Thanks for your answers. I'm sure there coming in useful for diagnosing future problems.

Nathan.

share|improve this answer

After spending hours trying to figure out the cause of my own segmentation fault error I started randomly disabling things. In my case the cause of the error was Zend's eaccelerator.

Since I don't need this extension I am leaving it disabled. If you are having the same problem and need this extension you could try deleting the eaccelerator cache and restarting httpd.

share|improve this answer

next time you can try to use strace or truss

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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