I've noticed that my system has been producing this crash report. I'm not sure of why and my knowledge of the inner goings of apache is limited. I'm not really sure what is causing this since nothing in particular has changed on the server. Any help is appreciated. What should I be looking for and examining? What could be the cause of it?
Apport:
ERROR: apport (pid 8618) Mon Jan 25 14:35:24 2016: called for pid 8384, signal 7, core limit 0
ERROR: apport (pid 8618) Mon Jan 25 14:35:24 2016: executable: /usr/sbin/apache2 (command line "/usr/sbin/apache2 -k start")
ERROR: apport (pid 8618) Mon Jan 25 14:35:24 2016: is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment
ERROR: apport (pid 8618) Mon Jan 25 14:35:52 2016: wrote report /var/crash/_usr_sbin_apache2.0.crash
Signal 7 on x86/ARM devices relates to
SIGBUS
(see:man 7 signal
), means Bus error (bad memory access).See: Debugging SIGBUS on x86 Linux
Could be a bug, faulty Apache module or hardware issue.
Debugging
Since Apport generated crash in
/var/crash/
, you can check the crash file for more details. You can open it in the text editor, however the core dump file is packed in a base64 format.To unpack it, run:
See: How can I read a crash file from /var/crash & Debugging Program Crash.
Then run
gdb
to analyse the crash file:then type:
bt
orbt full
to check the stack trace.Assuming your Apache binary wasn't compiled with debugging symbols, it won't be much help. However, you can identify where the crash happened, such as certain Apache/PHP module, for example:
Check also how many frames you've got by scrolling the list from
bt
command, and if there are too many, like over 1000, the potential problem is with infinite loop somewhere in your code application.PHP
In case your application is running under PHP, for more advanced debugging with
gdb
, see: How to get current PHP function name in gdb?Like in above example,
libphp5.so
module is the main one dealing with PHP.To find out which package it belongs to, run:
Then consider upgrading the faulty library/module.
In case some 3rd party module crashes, consider disabling it via
php5dismod
, e.g.Then if the issue is still there, try to reproduce it from the command-line using
php
. If you can, debug it using anstrace
, e.g.Then check the latest actions what PHP process was doing before the crash. To increase size of messages, use
-s 1500
, to save into log file, use-o file.log
.