Wie bereits getwittert habe ich gestern zum ersten Mal eine PHP-Web-Applikation (cacti, eine Tool, mit welchem per SNMP Zähler von netzwerkfähigen Geräten aufgezeichnet und ausgegeben werden können) erlebt, die Apache mit einem …
[Sat Oct 25 15:55:52 2008] [notice] child pid 13452 exit signal Segmentation fault (11)
… bei jedem Aufruf zum Absturz gebracht hat (Apache-Threads sei dank, dass nicht gleich der ganze Web-Server zum erliegen kam).
Google wusste selbstverständlich die simple Lösung auf das Problem – für einmal musste ich aber die Suchanfrage mehrere Male abändern und auch auf die zweite Seite der Suchresultate blättern:
After throwing strace at it I could see before it died all it was doing was running the SQL query „select value from settings where name=’log_verbosity'“ over and over (around 6000 times before it died).
After squirting the cacti.sql file into MySQL all was well and the install completed OK.
Quelle: Seven Of Nine – Borg – Cacti – exit signal Segmentation fault (11)
Unglaublich, aber wahr: Wenn die Applikation die gesuchte Tabelle nicht findet, gelangt sie mit der Error Logging-Funktion in eine Endlosschleife. Auch bei mir löste sich das Problem, indem ich die im Cacti-Basisverzeichnis liegende cacti.sql manuell in MySQL importierte:
$ mysql -u cacti -p cacti < ./cacti.sql
Kostenloser Tipp an die Entwickler (Pseudo-Code):
if(!table_exists($tbl)) { mysql_import('./cacti.sql'); if(!table_exists($tbl)) { die('Import of cacti.sql failed. Error #' . mysql_errno() . ' - ' . mysql_error()); } }