[Bug 275522] www/mod_php81: Apache crashes on reload after switch to system pcre
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 04 Dec 2023 10:26:40 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275522
Bug ID: 275522
Summary: www/mod_php81: Apache crashes on reload after switch
to system pcre
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: bofh@freebsd.org
Reporter: majo-bugs.freebsd.org@cerny.sk
Assignee: bofh@freebsd.org
Flags: maintainer-feedback?(bofh@freebsd.org)
The change "lang/php81: Update version 8.1.25=>8.1.26"
https://cgit.freebsd.org/ports/commit/?id=06be0d5391f475771145a7a9d68d34b0ad5a9b85
is causing apache with mod_php and a bunch of php extensions to crash on reload
(apachectl graceful or signal 30 - SIGUSR1)
It crashes reliably on apachectl reload with extensions1 (see comments) with
the following back trace:
(lldb) target create "httpd" --core "httpd-9988.core"
Core file '/tmp/httpd-9988.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'httpd', stop reason = signal SIGSEGV
* frame #0: 0x000000080141a5d4 libzstd.so.1`___lldb_unnamed_symbol756 + 740
frame #1: 0x00000008027ce1c6
libphp.so`zend_extension_startup(extension=0x0000000801b18510) at
zend_extensions.c:196:7
frame #2: 0x00000008027b0ba1
libphp.so`zend_llist_apply_with_del(l=0x0000000802954100,
func=(libphp.so`zend_extension_startup at zend_extensions.c:193)) at
zend_llist.c:171:7
frame #3: 0x00000008027ce1a8 libphp.so`zend_startup_extensions at
zend_extensions.c:217:2 [artificial]
frame #4: 0x000000080274f8c7 libphp.so`php_module_startup(sf=<unavailable>,
additional_modules=<unavailable>, num_additional_modules=1) at main.c:2263:2
frame #5: 0x00000008028ad385
libphp.so`php_apache2_startup(sapi_module=<unavailable>) at
sapi_apache2.c:381:6
frame #6: 0x00000008028acbd6
libphp.so`php_apache_server_startup(pconf=0x0000000800907028,
plog=<unavailable>, ptemp=<unavailable>, s=<unavailable>) at
sapi_apache2.c:495:6
frame #7: 0x0000000000263d6f httpd`ap_run_post_config + 79
frame #8: 0x000000000025f4cc httpd`main + 2476
frame #9: 0x000000000025e910 httpd`_start + 256
It crashes sporadically on another server with different set of extensions2
(see comments) with the following back trace:
(lldb) target create "httpd" --core "httpd-99468.core"
Core file '/tmp/httpd-99468.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'httpd', stop reason = signal SIGSEGV
* frame #0: 0x00000008020f5124 libphp.so`zend_get_callable_name_ex + 164
frame #1: 0x00000008020f9f06 libphp.so`___lldb_unnamed_symbol7929 + 22
frame #2: 0x00000008020dc5d1 libphp.so`zend_llist_apply_with_del + 81
frame #3: 0x000000080207b107 libphp.so`php_module_startup + 2359
frame #4: 0x00000008021da2c5 libphp.so`___lldb_unnamed_symbol9598 + 21
frame #5: 0x00000008021d9aa6 libphp.so`___lldb_unnamed_symbol9593 + 118
frame #6: 0x00000000002627cf httpd`ap_run_post_config + 79
frame #7: 0x000000000025de8c httpd`main + 2476
frame #8: 0x000000000025d2d0 httpd`_start + 256
When I revert external-pcre (the following "lines") from the Makefile:
BUILD_DEPENDS= re2c>0:devel/re2c
CONFIGURE_ARGS+= --with-external-pcre=${LOCALBASE}
and revert pkg-plist so that include/php/ext/pcre/pcre2lib/ header files are
installed, the crash on reload does not happen.
See also my bug report to PHP project, where I originally thought it is a bug
of PHP 8.1.26:
mod_php 8.1.26 crashes on apache graceful restart
https://github.com/php/php-src/issues/12844
Note the following comment by nielsdos (PHP contributor):
> If I had to take a guess, one possibility is that a conflicting version of pcre2 is used. e.g. when one (transitive) library dependency of an extension depends on pcre2 and php also uses pcre2 for ext/pcre, this can cause problems when different versions are used because of conflicting symbols.
> Using the bundled pcre2 would fix this because we prefix some symbol names with the name php to avoid that exact issue.
--
You are receiving this mail because:
You are the assignee for the bug.