Probleme mit PHP 4.4.5

Heute haben wir nach der üblichen Quarantänephase PHP4 von 4.4.4 auf 4.4.5 umgestellt. Die Überwachung der einschlägigen Logfiles lieferte keine unerwarteten Fehlermeldungen, also gingen wir davon aus das alles läuft.

Pustekuchen. Eben rief ein Kunde an (danke, Stefan!) und meldete Probleme mit seiner osCommerce-Installation. Nachdem leider keine Fehler im PHP-Errorlog dieses Kunden protokolliert wurden, führte ich eines der Scripte manuell auf der Shell aus - Ergebnis: “Segmentation fault”. :grr:

Jedenfalls haben wir nach kurzer Analyse wieder alle Server auf 4.4.4 zurückgestellt und harren mal der Dinge. Das konkrete (reproduzierbare) Problem werde ich mir später in einer Testumgebung mit gdb nochmal näher anschauen - vielleicht findet sich ja die Wurzel allen Übels…

11 Bemerkungen zu “Probleme mit PHP 4.4.5”

  1. Tobi

    Das Problem hatte ich auch.
    Schuld war bei mir die PHP-Funktion session_register()…

    Schau mal unter
    http://bugs.php.net/bug.php?id=40493
    das ist im CVS bereits fixed …

  2. Jürgen Jaritsch

    Compiler Options? Läuft hier ohne Probleme: http://demo-php4.uttx.net

  3. Klaus Keppler

    Beim betroffenen Kunden zerreist es PHP bei php_add_session_var().

    Wen’s interessiert:

    Starting program: /usr/src/web/php-4.4.5/sapi/cgi/php advanced_search_result.php
    [Thread debugging using libthread_db enabled]
    [New Thread -1220189024 (LWP 21790)]Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread -1220189024 (LWP 21790)]
    0×080ecb68 in php_add_session_var (name=0×82b18fc “cart”, namelen=4)
    at /usr/src/web/php-4.4.5/ext/session/session.c:287
    287 if ((Z_TYPE_PP(sym_global) == IS_ARRAY && Z_ARRVAL_PP(sym_global) == &EG(symbol_table)) || *sym_global == PS(http_session_vars)) {
    (gdb)
    (gdb) bt
    #0 0×080ecb68 in php_add_session_var (name=0×82b18fc “cart”, namelen=4)
    at /usr/src/web/php-4.4.5/ext/session/session.c:287
    #1 0×080f05a9 in php_register_var (entry=0×82b18fd) at /usr/src/web/php-4.4.5/ext/session/session.c:1470
    #2 0×080f06c5 in zif_session_register (ht=136775952, return_value=0×82de23c, this_ptr=0×0, return_value_used=1)
    at /usr/src/web/php-4.4.5/ext/session/session.c:1506
    #3 0×0819fedc in execute (op_array=0×8284690) at /usr/src/web/php-4.4.5/Zend/zend_execute.c:1681
    #4 0×0819fc5c in execute (op_array=0×8272fe4) at /usr/src/web/php-4.4.5/Zend/zend_execute.c:1725
    #5 0×081a111f in execute (op_array=0×82732dc) at /usr/src/web/php-4.4.5/Zend/zend_execute.c:2278
    #6 0×081915c9 in zend_execute_scripts (type=8, retval=0×0, file_count=3) at /usr/src/web/php-4.4.5/Zend/zend.c:935
    #7 0×0816779d in php_execute_script (primary_file=0xbfc06a40) at /usr/src/web/php-4.4.5/main/main.c:1757
    #8 0×081a4d07 in main (argc=2, argv=0xbfc06b04) at /usr/src/web/php-4.4.5/sapi/cgi/cgi_main.c:1615

  4. Klaus Keppler

    Also… Fehler ist als Bug #40514 bekannt:

    http://bugs.php.net/bug.php?id=40514

    :grr:

  5. Klaus Keppler

    Zukünftig werden wir übrigens nicht nur die interne Quarantäne abwarten, sondern auch noch einen Blick auf die jeweils aktuelle Bug-Liste werfen. Da gibt’s noch ein paar andere ordentliche Schnitzer:

    PHP 4.4.5 Bugs

  6. Klaus Keppler

    @Jürgen: unsere PHP-Setups sind nicht wirklich miteinander vergleichbar… ;-)

  7. Jürgen Jaritsch

    @Klaus Glaube ich gerne ;) . Ich hab übrigens heute Nachmittag über 7.000 User gelöscht - brauchst ein paar? :P

  8. Klaus Keppler

    @Jürgen: ich vermute mal Du hast die User aus irgendeinem bestimmten Grund gelöscht :-P
    Wir nehmen aber nur zahlende Kunden. Trotzdem Danke für’s Angebot! ;-)

  9. Jürgen Jaritsch

    @Klaus Natürlich gabs’ dafür Gründe. Und ja, der kleine aber feine Unterschied ist der, dass ich User und du Kunden hast.

  10. Jürgen Jaritsch

    http://www.php.net/releases/4_4_6.php

    Auszug aus dem Changelog:

    - Fixed segfault in ext/session when register_globals=On

    Klingt ja nicht so schlecht ;) .

  11. RackBlogger » Blog Archiv » PHP 4.4.6, 4.4.7, 4.4.8, …

    […] PHP 4.4.6, 4.4.7, 4.4.8, … Nach den Problemen mit PHP 4.4.5 wurde gestern die Version 4.4.6 freigegeben. Gleichzeitig startete aber auch der “Month of PHP Bugs” - ein Projekt einiger frustrierter Sicherheitsspezialisten. Die ersten Einträge existieren schon - mal schauen wie lange es dann bis zur Version 4.4.7, 4.4.8, 4.4.9, … braucht. A propos… habe ich eigentlich schon erwähnt, daß ich (persönlich) PHP als Platform für “redistributable Applications” nicht zuletzt aus diesem Grunde für völlig ungeeignet halte? Als Hersteller einer PHP-Anwendung hätte ich Angst um die Lauffähigkeit meiner Anwendungen bei jedem einzelnen PHP-Update. Klar, die C-Laufzeitumgebung ist auch nicht wirklich fehlerfrei, aber definitiv mit einer höheren Stabilität gesegnet als PHP. […]

Einen Kommentar schreiben