PHP APCU php_pcre2_match_data_create_from_pattern

  • Hallo,


    beim Nextcloud Update (unter Ubuntu 24.04) erhalte ich folgende Fehlermeldung.

    Scheinbar fehlt da ein Funkion o.ä. im APCU Modul?

    Code
    /opt/php-8.3/bin/php: symbol lookup error: /opt/php-8.3/lib/extensions/no-debug-non-zts-20230831/apcu.so: undefined symbol: php_pcre2_match_data_create_from_pattern

    Hatte es auch mit 8.1,8.2 versucht.

  • Den Fehler kann man temporär beheben, wenn man das apcu Modul über Pecl neu installiert.

    Code
    apt install libpcre2-dev && /opt/php-8.3/bin/pecl install  apcu

    Wäre natürlich schöner wenn das LiveConfig php-8.3-opt-apcu entsprechend aktualisiert werden könnte ;)

    • Neu
    • Offizieller Beitrag

    Nach längerer Suche konnten wir das endlich reproduzieren... der Fehler wird nur dann angetriggert, wenn ein APCu-Iterator mit einem regulären Ausdruck genutzt wird (ironischerweise enthält die komplette APCu-Testsuite keinen einzigen solchen Test - sonst wäre das aufgefallen...)


    Mit folgendem Befehl lässt sich das antriggern/testen:

    /opt/php-8.3/bin/php -d apc.enable_cli=1 -d display_errors=1 -r '$it = new APCuIterator("/.*/", APC_ITER_VALUE);'


    Update/Lösung ist in Arbeit, PHP-Updates (8.3.20/8.4.6) stehen ohnehin für morgen Vormittag an. 8)

    • Neu
    • Offizieller Beitrag

    Wie sich herausgestellt hat, war auf dem Build-Server für Ubuntu 24 (AMD64) zu dem Zeitpunkt, als dort "php-8.[1-3]-opt-apcu" gebaut wurde, noch ein php-8.[1-3]-opt-dev-Paket installiert, welches die interne PCRE-Bibliothek von PHP genutzt hatte (daher das "php_" am Anfang des nicht gefundenen Symbolnamens).

    Außerdem haben unsere Prüfungen ergeben, dass PHP 8.2 und 8.3 unter Debian 12 auch mit dem internen PCRE gebaut wurde (da waren die APCu-Pakete aber darauf abgestimmt).

    Wir haben das nun korrigiert und die Pakete entsprechend aktualisiert. Für PHP 8.3 und 8.4 stehen heute ohnehin Updates an (8.3.20, 8.4.6).


    Viele Grüße


    -Klaus Keppler

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!