Source: php8.2-common
Version: 8.2.7-1~deb12u1
Severity: normal
Control: tags -1 bookworm
Dear Maintainer,
I have a machine running wordpress (6.2.2) that was originally installed with
buster (10), and then later upgraded to bullseye (11). It was running
php7.2-fpm with nginx.
I wanted to upgrade to bookworm (12) while keeping the system live, so I began
by manually upgrading a few key packages. Openssh-server, monit, certbot, and a
few others. I also upgraded nginx, and (after manually editing the php-fpm.sock
location) the site continued working.
Then I upgraded php. Specifically:
Install: libffi8:amd64 (3.4.4-1, automatic), php8.2-mysql:amd64 (8.2.7-1~deb12u1, automatic), libaom3:amd64 (3.6.0-1, automatic), libheif1:amd64 (1.15.1-1, automatic), libodbc2:amd64 (2.3.11-2, automatic), libx265-199:amd64 (3.5-2+b1, automatic), php8.2-soap:amd64 (8.2.7-1~deb12u1, automatic), libdav1d6:amd64 (1.0.0-2, automatic), libtiff6:amd64 (4.5.0-6, automatic), php8.2:amd64 (8.2.7-1~deb12u1, automatic), libnuma1:amd64 (2.0.16-1, automatic), libsvtav1enc1:amd64 (1.4.1+dfsg-1, automatic), php8.2-mbstring:amd64 (8.2.7-1~deb12u1, automatic), php8.2-curl:amd64 (8.2.7-1~deb12u1, automatic), liblerc4:amd64 (4.0.0+ds-2, automatic), php8.2-opcache:amd64 (8.2.7-1~deb12u1, automatic), php8.2-imap:amd64 (8.2.7-1~deb12u1, automatic), libgav1-1:amd64 (0.18.0-1+b1, automatic), php8.2-readline:amd64 (8.2.7-1~deb12u1, automatic), php8.2-odbc:amd64 (8.2.7-1~deb12u1, automatic), php8.2-igbinary:amd64 (3.2.13-1, automatic), php8.2-redis:amd64 (5.3.7+4.3.0-3, automatic), libyuv0:amd64 (0.0~git20230123.b2528b0-1, automatic), libwebp7:amd64 (1.2.4-0.2, automatic), libabsl20220623:amd64 (20220623.1-1, automatic), libavif15:amd64 (0.11.1-1, automatic), php8.2-gd:amd64 (8.2.7-1~deb12u1, automatic), php8.2-sqlite3:amd64 (8.2.7-1~deb12u1, automatic), php8.2-bz2:amd64 (8.2.7-1~deb12u1, automatic), php8.2-cli:amd64 (8.2.7-1~deb12u1, automatic), php8.2-fpm:amd64 (8.2.7-1~deb12u1, automatic), php8.2-common:amd64 (8.2.7-1~deb12u1, automatic), libde265-0:amd64 (1.0.11-1, automatic), libodbccr2:amd64 (2.3.11-2, automatic), librav1e0:amd64 (0.5.1-6, automatic), php8.2-xml:amd64 (8.2.7-1~deb12u1, automatic), php8.2-zip:amd64 (8.2.7-1~deb12u1, automatic)
Upgrade: libltdl7:amd64 (2.4.6-15, 2.4.7-5), php-redis:amd64 (5.3.2+4.3.0-2+deb11u1, 5.3.7+4.3.0-3), php:amd64 (2:7.4+76, 2:8.2+93), libodbc1:amd64 (2.3.6-0.1+b1, 2.3.11-2), php-gd:amd64 (2:7.4+76, 2:8.2+93), php-common:amd64 (2:76, 2:93), php-soap:amd64 (2:7.4+76, 2:8.2+93), php-curl:amd64 (2:7.4+76, 2:8.2+93), php-readline:amd64 (2:7.4+76, 2:8.2+93), php-igbinary:amd64 (3.2.1+2.0.8-2, 3.2.13-1), php-imap:amd64 (2:7.4+76, 2:8.2+93), php-odbc:amd64 (2:7.4+76, 2:8.2+93), php-mbstring:amd64 (2:7.4+76, 2:8.2+93), php-bz2:amd64 (2:7.4+76, 2:8.2+93), php-cli:amd64 (2:7.4+76, 2:8.2+93), php-fpm:amd64 (2:7.4+76, 2:8.2+93), php-mysql:amd64 (2:7.4+76, 2:8.2+93), php-xml:amd64 (2:7.4+76, 2:8.2+93), php-json:amd64 (2:7.4+76, 2:8.2+93), php-zip:amd64 (2:7.4+76, 2:8.2+93), libgd3:amd64 (2.3.0-2, 2.3.3-9), php-sqlite3:amd64 (2:7.4+76, 2:8.2+93)
Remove: php7.4-soap:amd64 (7.4.33-1+deb11u4), php7.4-mbstring:amd64 (7.4.33-1+deb11u4), php7.4-readline:amd64 (7.4.33-1+deb11u4), php7.4-gd:amd64 (7.4.33-1+deb11u4), php7.4-curl:amd64 (7.4.33-1+deb11u4), php7.4-imap:amd64 (7.4.33-1+deb11u4), php7.4-odbc:amd64 (7.4.33-1+deb11u4), php7.4-opcache:amd64 (7.4.33-1+deb11u4), php7.4:amd64 (7.4.33-1+deb11u4), php7.4-bz2:amd64 (7.4.33-1+deb11u4), php7.4-cli:amd64 (7.4.33-1+deb11u4), php7.4-mysql:amd64 (7.4.33-1+deb11u4), php7.4-fpm:amd64 (7.4.33-1+deb11u4), php7.4-json:amd64 (7.4.33-1+deb11u4), php7.4-xml:amd64 (7.4.33-1+deb11u4), php7.4-zip:amd64 (7.4.33-1+deb11u4), php7.4-sqlite3:amd64 (7.4.33-1+deb11u4), php7.4-common:amd64 (7.4.33-1+deb11u4)
End-Date: 2023-06-18 23:25:00
After editing the various .ini and .conf files in /etc/php/8.2 for wordpress's
various needs, the site was using php8.2-fpm, but wordpress was broken and the
logs were filled with:
2023/06/18 23:25:02 [error] 16059#16059: *3330 FastCGI sent in stderr: ": preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line 1358; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/rules.php on line 773; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line 1506; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line 1358; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/rules.php on line 773; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line 1506; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line 1358; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/rules.php on line 773; PHP message: PHP Warning: preg_match(): Compilation failed: unrecognised compile-time option bit(s) at offset 0 in /srv/
theurbanist.org/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line 1506; PHP message: PHP
Since the site was only half upgraded at this point, I did the full upgrade
(using 'apt upgrade' && 'apt full-upgrade', as described in
https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#idm1322
for safely upgrading mariadb) and rebooted into the new kernel.
Unfortunately, even after the full system upgrade and reboot, the errors
continued. After some quick searching, it seemed like it was a problem with
older versions of pcre; both libpcre2-8-0 (10.42-1) and libpcre3 (2:8.39-15)
were installed. I removed the libpcre3 package, restarted php8.2-fpm, and the
preg_match() errors stopped. After that the site worked with no other issues.
So to summarize: after a full bullseye->bookworm upgrade which included
php7.2->php8.2, php's pcre_match() function was broken when both libpcre3 and
libpcre2* were installed. Removing libpcre3 fixed the issue.
I suspect that php8.2 packages should conflict with libpcre3 or something.
It seems like the kind of thing that would be appropriate for a bookworm
point release, but I'm filing this with normal severity for now.
-- System Information:
Debian Release: 12.0
APT prefers stable-security
APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.1.0-9-cloud-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages php8.2-common depends on:
ii libc6 2.36-9
ii libffi8 3.4.4-1
ii libssl3 3.0.9-1
ii php-common 2:93
ii ucf 3.0043+nmu1
-- no debconf information