Segmentation Fault mit Zend Guard Loader

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
WebWusel
Beiträge: 6
Registriert: 23.03.2009 09:00:08
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bergisch Gladbach

Segmentation Fault mit Zend Guard Loader

Beitrag von WebWusel » 17.06.2013 10:14:00

Hallo Forum!

Also, ich bin mir aktuell nicht sicher, ob ich dieses Problem nun in einem Debian-Forum, bei php.net, Apache oder Bei Zend posten soll. Ich fange einfach hier an.

Ich bin ueber folgendes Problem "gestolpert".

Auf einer auf OpenVZ basierenden VE benoetige ich den ZendGuardLoader fuer PHP5.3.x. Die Einrichtung war kein Problem und es lief auch augendscheinlich. Allerdings gab es sporadische SegFaults im Apache-ErrorLog. Als der Apache allerdings ein reload bekam, ging nichts mehr. Die letzte Meldung im Apache-ErrorLog war ein SegFault und unter top fand sich ein einzelner Apache-Task mit 100% Last. Restart war nicht moeglich, da der Apache a) seine Verzeichnisse nicht mehr sehen konnte und b) die Ports belegt blieben. Ein killall -KILL apache brachte hilfe, bis zum naechsten Reload.

Ein Restart des laufenden Apache machte allerdings keine Probleme.

ein php5 -v wirft ebenfalls ein SegFault aus.

Ich habe das Problem zunaechst in den Foren von gSales ( http://forum.gsales.de/showthread.php?4 ... ns-Nirvana ) und LiveConfig ( http://www.liveconfig.com/de/forum/thre ... ns-Nirvana ) gepostet.

Das Grundsystem war Debian 6.0 AMD64 mit unmodifizierten apt-Quellen. Allerdings mit dem letzten Stable Kernel aus OpenVZ.org. 042stab078.8

Die folgenden Tests natuerlich immer mit dem passenden ZendGuardLoader.so!

Um auszuschliessen, dass das Problem durch die VE verursacht wird, habe ich auf dem Host selbst den Versuch gemacht und den Apache via apt-get nebst php installiert. Hier gab es nach einem Reload zwar keinen single Apache-Task auf 100% aber der Apache verabschiedete sich einfach mit einem SegFault im Log. php5 -v mit SegFault.

Um auszuschliessen, dass das Problem durch den Kernel verursacht wird habe ich lokal unter HyperV ein Debian 6 AMD64 unmodifiziert installiert. Selbes Problem, wie auf der Hardware-Node.

Weiter auf der HyperV-Instanz:

Upgrade von PHP aus den Quellen von DotDeb auf die letzte Version: gleiches Problem.
Upgrade von PHP5.3 auf PHP5.4 von DotDeb und passendem ZendGuardLoader: gleiches Problem
Neuinstallation von Debian 7 AMD64 und Tests mit PHP5.4 aus Debian und DotDeb: gleiches Problem
Neuinstallation von Debian 6 I386 und o. g. Tests mit 32-Bit ZendGuardLoader: gleiches Problem

Bis ich irgendwann auf die Idee kam, mod_php abzuschalten, da ich cgi-php nutze: Apache lauft in allen o. g. Varianten auch nach einem Restart und es gibt auch keine sporadischen SegFaults in den Apache-Logs - aber php5 -v gibt weiterhin ein SegFault.

Ich habe mich wirklich inzwischen halbtot gegooglet und finde zwar etliche Postings ueber SegFault-Probleme in Verbindung mit dem ZendGuardLoader aber nirgends eine wirkliche Loesung.

Das Testszenario war einfach:

Grundinstallation Apache mit PHP.
Kopieren des ZendGuardLoaders in /usr/local/bin/zend
in /etc/php5/conf.d eine zendguard.ini gelegt mit dem Inhalt "extension=/usr/local/bin/zend/ZendGuardLoader.so"
in /var/www eine infophp.php gelegt mit <? phpinfo() ?> als Inhalt.
dann /etc/init.d/apache2 restart und die infophp.php aufgerufen um zu kontrollieren ob der ZendGuardLoader geladen wird.
dann /etc/init.d/apache2 reload ... Apache tot!

Ich kann mir einfach nicht vorstellen, dass - nachdem ich jetzt wirklich nichts gruseliges angestellt habe - ich der einzige bin, der dieses Problem reproduzieren kann. Vor allem aber beunruhigt mich - auch nachdem es augenscheinlich ohne mod_php laeuft, dass php5 -v noch immer ein SegFault wirft.

Kann es sein, dass da seit Ewigkeiten in Bug lebt der aufgrund von diversen Workarounds einfach ignoriert wird?

Kann das hier vielleicht jemand reproduzieren? Und wenn sich das reproduzieren laesst, wo ist die richtige Adresse, einen entsprechenden Bug-Report zu melden?

Viele Gruesse,

Oskar
Computer sind unglaublich dumme Geräte,
die unglaublich intelligente Sachen können.
Programmierer sind unglaublich intelligente Leute,
die unglaublich dumme Sachen produzieren.
("Die Presse", 30.8.1999)

Antworten