9

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.

6 Answers 6

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>
3
  • 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, 2009 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. Sep 18, 2009 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. :)
    – khosrow
    Sep 22, 2009 at 4:56
6

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.

1
  • I've also observed this error on a system running with insufficient free swap space. There were also other processes in the system log seg faulting and complaining on insufficient free swap space. Apr 6, 2018 at 10:46
4

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.

1
2

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.

2

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.

1

next time you can try to use strace or truss

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .