Veröffentlichung 16. Juli 2018 @ 17:38
Letzte Änderung 16. Juli 2018 @ 17:38
Überblick
- Fehlermeldung in /var/log/apache2/error.log:
[xxx] [core:notice] [pid xxx] AH00051: child pid xxx exit signal Segmentation fault (11), possible coredump in /etc/apache2
- Fehlersuche in Core Dump mit GNU Project Debugger GDB
- Kernel-Konfiguration für core_pattern in /proc/sys/kernel/core_pattern entspricht sysctl-Parameter kernel.core_pattern
Voraussetzungen
Software
- Apache 2.4.18 #apache2 -v
- GNU Project Debugger GDB 7.11.1 #gdb –version
- Ubuntu Server 16.04.04 LTS #lsb_release -a
Ordner und Dateien
- Konfiguration /etc/apache2/apache2.conf, /etc/init.d/apache2, /etc/sysctl.conf, /proc/sys/kernel/core_pattern
- Log /tmp, /var/log/apache2/error.log
Verzeichnis für Core Dumps in Apache-Konfiguration hinterlegen
... CoreDumpDirectory /tmp
Größenbegrenzung für Core Dumps vor Apache-Start aufheben
Apache-SysVinit-Skript ergänzen
... do_start() { ulimit -c unlimited #Größenbegrenzung für Core Dumps aufheben ...
systemd-Konfigurationsdateien neu laden und Units neu starten
systemctl daemon-reload
Aufbau der Core-Dump-Dateinamen festlegen
Format core-Programm-Hostname-PID-UID-GID-Zeitstempel
Temporär bis zum nächsten Neustart
echo "/tmp/core-%e-%h-%p-%u-%g-%t" > /proc/sys/kernel/core_pattern
Dauerhaft bei jedem Systemstart
... kernel.core_pattern=/tmp/core-%e-%h-%p-%u-%g-%t
sysctl --load=/etc/sysctl.conf
Konfiguration testen, Apache neustarten und Status abfragen
apache2ctl configtest systemctl restart apache2 systemctl status apache2.service
GNU Project Debugger GDB installieren
apt install gdb
Core Dump analysieren
gdb /usr/sbin/apache2 /tmp/core-xxx-xxx-xxx-xxx-xxx-xxx ... (gdb) bt full ...
Aufhebung der Größenbegrenzung für Core Dumps vor Apache-Start rückgängig machen und Apache neu starten
... do_start() { #ulimit -c unlimited #Größenbegrenzung für Core Dumps aufheben ...
systemctl daemon-reload systemctl restart apache2
[Optional] Core-Dump-Dateien löschen
rm /tmp/core-*
Quellen
/usr/share/doc/apache2/README.backtrace
https://httpd.apache.org/
https://httpd.apache.org/dev/debugging.html#crashes
http://manpages.ubuntu.com/manpages/xenial/man5/core.5.html
http://manpages.ubuntu.com/manpages/xenial/man1/gdb.1.html
http://manpages.ubuntu.com/manpages/xenial/man8/sysctl.8.html
http://manpages.ubuntu.com/manpages/xenial/man5/sysctl.conf.5.html
https://support.plesk.com/hc/en-us/articles/213366549-How-to-trace-Apache-segmentation-fault-
https://www.gnu.org/software/gdb/