Apache Segfault unter Debian Wheezy debuggen

Auf einem Livesystem gab es seit einer Woche gelegentliche Segfaults von Apache Kindprozessen:

[notice] child pid 6587 exit signal Segmentation fault (11)

Das normale Vorgehen ist der Eintrag eines CoreDumpDirectory in /etc/apache2/apache2.conf und die Erstellung des angegebenen Verzeichnisses. Das führt zwar zu einem entsprechenden Eintrag im Log:

[notice] child pid 7088 exit signal Segmentation fault (11), possible coredump in /tmp/apache-coredumps

aber leider liegt dort nichts. Die Ursache war letztendlich ein Security-Feature, das Coredumps von durch root gestarteten Prozessen die anschließend auf einen anderen Benutzer switchen, verhindert. Hier also der ganze Vorgang unter Debian wheezy um an lesbare Coredumps zu kommen:

$ ulimit -c unlimited
$ mkdir /tmp/apache-coredumps
$ chown -R www-data. /tmp/apache-coredumps
$ sudo vim /etc/apache2/apache2.conf
---> dort "CoreDumpDirectory /tmp/apache-coredumps" einfügen + speichern
$ sudo sysctl fs.suid_dumpable=2
$ sudo service apache2 restart
$ gdb apache2 -core /tmp/apache-coredumps/COREFILE

Ich hoffe es hilft jemandem 😉

Getagged mit: , , , , ,
2 Kommentare zu “Apache Segfault unter Debian Wheezy debuggen
  1. The cause was ultimately a security feature that prevents core dumps from root-initiated processes that subsequently switch to another user.

  2. The reason was, ultimately, a security feature that prevents core dumps from root-initiated processes that subsequently switch to another user.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.