Apache Crash bei php_snmp.dll

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Apache Crash bei php_snmp.dll

Postby kschroeder » 17. November 2015 11:41

Hallo,

Installiert ist Xampp 1.8.3.0-VC11, mit Apache/2.4.4 (Win32) PHP/5.4.35.
php_snmp.dll, Version 5.4.35.0.

Das Modul php_snmp.dll ist aktiviert, die Umgebungsvariable MIBDIRS zeigt auf das MIB-Verzeichnis und der Apache startet zunächst auch fehlerfrei.

Wenn allerdings Zugriff auf SNMP-Funktionen genommen wird, kann (!) es sein, dass der Apache einfach crashed.
Manchmal läuft der Server einige Stunden, manchmal crashed er alle 5 Minuten!
Sobald man quittiert, dass das Programm geschlossen werden soll, startet der Apache direkt wieder neu.

Im Ereignisprotokoll steht Ausnahmecode: 0xc0000005
Pfad der fehlerhaften Anwendung: c:\xampp\apache\bin\httpd.exe
Pfad des fehlerhaften Moduls: c:\xampp\php\ext\php_snmp.dll

Im Errorlog tauchen aber dann die Meldungen auf:
AH00428: Parent: child process 2612 exited with status 3221225477 -- Restarting
Und 21 Zeilen wie diese: Cannot find module (IP-MIB): At line 0 in (none)

Über Google finde ich zwar einige Hinweise bezüglich Apache Crash und dem SNMP-Modul, aber zumeist startet der Apache da erst gar nicht
oder man solle einen anderen Build (VC9 anstelle von VC10, aber ich verwende VC9 oder OpenSSL 0.9, was ich auch verwende) nehmen.

Bei https://www.apachelounge.com/viewtopic.php?p=18184 hat jemand die Idee anstelle des PHP-Moduls auf PHP-CGI umszustellen,
aber muss ich dann überall den ganzen Code umschreiben, wo ich SNMP verwende?

Kann ich vielleicht eine aktuellere Version vom Apache oder des SNMP-Moduls verwenden (wobei es wohl auch die Fehler bei aktuellen PHP-Versionen gibt).
Oder gibt es noch eine andere Lösung? (Bitte keine Tipps, wie SNMP nicht zu verwenden :wink: )
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Re: Apache Crash bei php_snmp.dll

Postby Nobbie » 17. November 2015 14:54

kschroeder wrote:Bei https://www.apachelounge.com/viewtopic.php?p=18184 hat jemand die Idee anstelle des PHP-Moduls auf PHP-CGI umszustellen,
aber muss ich dann überall den ganzen Code umschreiben, wo ich SNMP verwende?


Wieso umschreiben und was umschreiben? Viele Massenhoster laufen doch sowieso im CGI Mode.

kschroeder wrote:Kann ich vielleicht eine aktuellere Version vom Apache oder des SNMP-Moduls verwenden (wobei es wohl auch die Fehler bei aktuellen PHP-Versionen gibt).
Oder gibt es noch eine andere Lösung? (Bitte keine Tipps, wie SNMP nicht zu verwenden :wink: )


Wenn es etwas aktuelleres gibt, warum nicht?! Es geht sicher auch eine ältere Version, Hauptsache es stürzt nicht ab.

Ich habe noch diesen Hinweis an verschiedenen Stellen gefunden, vielleicht hilft das ja:

Basically in c:\usr\snmp\persist\mib_indexes\ directory I found two files named 0 and 1. If you remove them SNMP extension works fine.
Nobbie
 
Posts: 8759
Joined: 09. March 2008 13:04

Re: Apache Crash bei php_snmp.dll

Postby kschroeder » 17. November 2015 15:45

Nobbie wrote:Wieso umschreiben und was umschreiben? Viele Massenhoster laufen doch sowieso im CGI Mode.

Ich meinte damit, ob ich die selben Funktionen mit den selben Parametern verwenden kann oder ob sich die Syntax vielleicht ändert.
Ich musste z.B. mal die ganzen mysql-Funktionen umstellen, da nur noch mysqli unterstützt wurde.
Ich musste die auch bei SNMP etwas umstellen, da nicht nur der Wert zurückgegeben wurde, sondern auch der Typ. (Vorher: 100, jetzt: INTEGER:100)
Ich musste mssql auf odbc umstellen, da nicht mehr unterstützt...

Nobbie wrote:Wenn es etwas aktuelleres gibt, warum nicht?! Es geht sicher auch eine ältere Version, Hauptsache es stürzt nicht ab.

Ich kann nicht auf eine neuere PHP-Version wechseln, da ich bisher aktuellere Version des php_saprfc-Moduls fidnen konnte.
Müssen die Versionen der Module zusammenpassen oder kann ich z.B. von der PHP5.7-Distribution das SNMP-Modul austauschen?
Offenbar gibt es ja auch Probleme, welche Apache-Distribution ich mit meiner PHP-Version verwende. Daher die Frage.

Nobbie wrote:Ich habe noch diesen Hinweis an verschiedenen Stellen gefunden, vielleicht hilft das ja:
Basically in c:\usr\snmp\persist\mib_indexes\ directory I found two files named 0 and 1. If you remove them SNMP extension works fine.

Den Eintrag habe ich auch gefunden, aber es gibt bei mir kein lokales Verzeichnis "mib_indexes". Ich habe auch keine Dateien finden können, die nur "0" oder nur "1" heißen.

Noch ein Nachtrag:
Ich denke, ich habe die Ursache auf 2 Scripts reduzieren können, die alle 5 Minuten laufen.
Bei einem der beiden habe ich vor dem SNMP-Befehl mit "Ping" geprüft, ob das System erreichbar ist.
Damit hatte ich (wahrscheinlich durch Zufall) über 3 Stunden Ruhe, dann ist er wieder einmal gecrashed.
Ich habe jetzt eines der beiden Scripte vorübergehend deaktiviert und prüfe jetzt, ob der Fehler noch immer auftritt.

Dann muss ich das System erst klonen, damit ich SNMP über PHP-CGI testen kann.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Re: Apache Crash bei php_snmp.dll

Postby Nobbie » 17. November 2015 16:29

kschroeder wrote:Ich meinte damit, ob ich die selben Funktionen mit den selben Parametern verwenden kann oder ob sich die Syntax vielleicht ändert.
Ich musste z.B. mal die ganzen mysql-Funktionen umstellen, da nur noch mysqli unterstützt wurde.
Ich musste die auch bei SNMP etwas umstellen, da nicht nur der Wert zurückgegeben wurde, sondern auch der Typ. (Vorher: 100, jetzt: INTEGER:100)
Ich musste mssql auf odbc umstellen, da nicht mehr unterstützt...


Davon hat bis an dieser Stelle nichts mit CGI zu tun.Wahrscheinlich hast Du irgendwelche Releases gewechselt.

kschroeder wrote:Ich kann nicht auf eine neuere PHP-Version wechseln, da ich bisher aktuellere Version des php_saprfc-Moduls fidnen konnte.


Dann eben nicht, das hast Du nirgends geschrieben und wenn das so ist, dann wird das so sein. Etwas komische Frage.

kschroeder wrote:Müssen die Versionen der Module zusammenpassen oder kann ich z.B. von der PHP5.7-Distribution das SNMP-Modul austauschen?


"Mischen" geht nicht, das gibt entweder kontrollierte Fehlermeldungen oder direkt System Crashs.

kschroeder wrote:Offenbar gibt es ja auch Probleme, welche Apache-Distribution ich mit meiner PHP-Version verwende. Daher die Frage.


Ach soo - also in dem Sinn kann ich die Frage nicht beantworten (ich glaube auch nicht, dass es überhaupt jemanden gibt, der das kann). Dazu müßte ich ja alle Apache Versionen und alle PHP Versionen und alle Probleme dazwischen kennen, das ist ein wenig arg anspruchsvoll. Insgesamt habe ich sowieso nicht das Gefühl, dass Du hier im richtigen Forum fragst. Wir können hier keine Apache oder PHP Bugs beheben, das geschieht bei den jeweiligen Entwicklungsteams. Wir können hier nur technische Probleme im Umfeld der einzelnen Komponenten besprechen, aber solche Bugs oder Laufzeitfehler können wir weder analysieren, noch im Quellcode beheben, geschweige denn einen Bugfix einbauen. Ich denke, mit diesen Problemen solltest Du Dich direkt an www.php.net wenden, da wird PHP entwickelt und gewartet.
Nobbie
 
Posts: 8759
Joined: 09. March 2008 13:04

Re: Apache Crash bei php_snmp.dll

Postby Altrea » 17. November 2015 18:10

Hallo,

Das allererste was ich bei diesem Problem versuchen würde wäre den Apache ThreadStack zu erhöhen.
Code: Select all
<IfModule mpm_winnt_module>
    ThreadStackSize 8388608
</IfModule>


Erst wenn das nichts bringt würde ich über CGI und ähnliche Maßnahmen nachdenken.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8286
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Apache Crash bei php_snmp.dll

Postby kschroeder » 19. November 2015 14:31

Ich denke, ich konnte den Fehler ein wenig weiter isolieren.
Es scheint, als wenn die Abstürze nur dann auftreten bzw. auftreten können, sobald ich versuche Daten (z.B. Temperatur) von mehreren APC USV zu ziehen.
Ich hab das alle 5 Minuten laufende Script vorübergehend deaktiviert und hatte 2 volle Tage Ruhe. Heute wieder aktiviert und etwa 2 Stunden später wieder der erste Absturz (trotz erhöhtem ThreadStackSize).
Dabei mache ich da auch nichts anderes als bei allen anderen Gerätschaften (z.B. Drucker):
Code: Select all
$data1 = snmpget($ipadresse,"public",".1.3.6.1.4.1.318.1.1.1.2.2.2.0");

Ähnlich dem Script hier: https://www.symcon.de/forum/threads/7483-SNMP-Ger%C3%A4te-auslesen-am-Beispiel-einer-APC-USV

Eine Richtfunkstrecke überwache ich damit auch alle 5 Minuten und hat noch keinen einzigen Absturz verursacht.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 16 guests