Segmentation Faults mit Cronjob unter Debian Squeeze


#1

Hallo Piwik Benutzer.

Wenn ich jede Stunde das archive.sh Script aus der Doku ausführe über einen Cronjob schmiert ab und zu das Skript mit einem Segmentation Fault ab:

Sep 23 13:05:03 machine_xy kernel: [3986278.598839] php5[25030]: segfault at ffffffff ip 00000000006a311f sp 00007fff0280a040 error 4 in php5[400000+6f9000]
Sep 23 13:05:03 machine_xy /USR/SBIN/CRON[25009]: (CRON) error (grandchild #25011 failed with exit status 139)

Die in den Piwik FAQs erwähnten Maßnahmen bezüglich der Segmentation Faults haben bis jetzt nichts gebracht. Habe von PDO_MYSQL nach MYSQLI gewechselt. Hat nichts gebracht. Wir benutzen Suhosin mit unserem Apache. Das kann ich aber leider aufgrund eines Produktions-Servers nicht deaktivieren.

Ich benutze Debian Squeeze (2.6.32-5), PHP5 Version ist 5.3.3-7, MYSQL Version ist 5.1.49-3.

Hat irgendwer einen Tipp?


(Peterbo) #2
  1. Bitte mal auf dem Server nachschauen, ob evtl irgendeine fehlerhaft kompilierte Komponente das auslöst.
  2. Schreibrechte für temp-Dateien richtig vergeben
  3. PHP-Umgebungsvariablen prüfung und ggf. korrigieren
  4. ist ImageMagick im Einsatz?

#3

Danke für die Antwort.

zu 1) Das kann es eigentlich nicht sein weil kein einziges Paket manuell kompiliert wurde. Alles per “aptitude” über das Debian Repository installiert…
zu 2) Der Ordner /tmp hat 777 Rechte
zu 3) Wie kann man die kontrollieren?
zu 4) Nein

Ich hab die Ausgabe des archive.sh Skripts mal in eine Datei umgelenkt. Wenn das Skript abschmiert kommt das Skript so weit:


Starting Piwik reports archiving...

Archiving period = day for idsite = 1...
<?xml version="1.0" encoding="utf-8" ?>
<results>
        <result date="2011-08-29" />
        <result date="2011-08-30" />
        <result date="2011-08-31" />
        <result date="2011-09-01" />
        <result date="2011-09-02" />
        <result date="2011-09-03" />
        <result date="2011-09-04" />
        <result date="2011-09-05" />
        <result date="2011-09-06" />
        <result date="2011-09-07" />
        <result date="2011-09-08" />
        <result date="2011-09-09" />
        <result date="2011-09-10" />
        <result date="2011-09-11" />
        <result date="2011-09-12" />
        <result date="2011-09-13" />
        <result date="2011-09-14" />
        <result date="2011-09-15" />
        <result date="2011-09-16" />
        <result date="2011-09-17" />
        <result date="2011-09-18" />
        <result date="2011-09-19" />
        <result date="2011-09-20" />
        <result date="2011-09-21" />
        <result date="2011-09-22">2524</result>
        <result date="2011-09-23">2589</result>
        <result date="2011-09-24">1768</result>
        <result date="2011-09-25">2558</result>
        <result date="2011-09-26">3460</result>
        <result date="2011-09-27">3676</result>
        <result date="2011-09-28">3302</result>
        <result date="2011-09-29">3134</result>
        <result date="2011-09-30">2510</result>
        <result date="2011-10-01">1782</result>
        <result date="2011-10-02">2024</result>
        <result date="2011-10-03">3121</result>
        <result date="2011-10-04">3657</result>
        <result date="2011-10-05">3814</result>
        <result date="2011-10-06">3791</result>
        <result date="2011-10-07">3271</result>
        <result date="2011-10-08">2375</result>
        <result date="2011-10-09">3050</result>
        <result date="2011-10-10">3965</result>
        <result date="2011-10-11">3681</result>
        <result date="2011-10-12">3670</result>
        <result date="2011-10-13">3113</result>
        <result date="2011-10-14">2654</result>
        <result date="2011-10-15">1990</result>
        <result date="2011-10-16">2622</result>
        <result date="2011-10-17">3717</result>
        <result date="2011-10-18">3602</result>
        <result date="2011-10-19">2095</result>
</results>

und dann ist Schluss.


(Peterbo) #4

-Bitte versuche mal, den Cronjob mit Root-Rechten abzufeuern. Wird dann auch ein Segfault geworfen?
-Session save-path-Einstellung kontrollieren. Ist der angegebene Pfad beschreibbar? (phpinfo, ebenfalls für 3))

~Peter


#5

Der Cronjob lief von Anfang an mit Root Rechten…

Ich muss auch etwas zurück rudern.

Seit ein paar Tagen ist ja Version 1.6 erschienen. Seit der neuen Version befindet sich im /misc/cron Verzeichnis neben der archive.sh Datei auch eine neue archive.php Datei. In der Datei steht als Info:


This script is an optimized rewrite of archive.sh in PHP, allowing for more flexibility
and better near real-time performance when Piwik tracks thousands of websites.

Ich benutze jetzt seit gestern diese Datei per Cronjob und sie läuft prima. Wenn das so bleibt hat sich das Problem mit der archive.sh Datei erledigt…