You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
A core dump occurs frequently when PHP is loaded using HTTP. The core dump error log is AH00051: child pid 6663 exit signal Segmentation falult(11). #9145
After the GDB and PHPDebug are enabled, the system reports the zend_object_handlers.c file based on the core information. An exception is reported: No such file or directory.
The error function is as follows:
ZEND_APIzval*zend_std_read_dimension(zend_object*object, zval*offset, inttype, zval*rv) /* {{{ */
{
zend_class_entry*ce=object->ce;
zvaltmp_offset;
if (EXPECTED(zend_class_implements_interface(ce, zend_ce_arrayaccess) !=0)) {
if (offset==NULL) {
/* [] construct */ZVAL_NULL(&tmp_offset);
} else {
ZVAL_COPY_DEREF(&tmp_offset, offset);
}
GC_ADDREF(object);
if (type==BP_VAR_IS) {
zend_call_method_with_1_params(object, ce, NULL, "offsetexists", rv, &tmp_offset);
if (UNEXPECTED(Z_ISUNDEF_P(rv))) {
OBJ_RELEASE(object);
zval_ptr_dtor(&tmp_offset);
returnNULL;
}
if (!i_zend_is_true(rv)) {
OBJ_RELEASE(object);
zval_ptr_dtor(&tmp_offset);
zval_ptr_dtor(rv);
return&EG(uninitialized_zval);
}
zval_ptr_dtor(rv);
}
zend_call_method_with_1_params(object, ce, NULL, "offsetget", rv, &tmp_offset);
OBJ_RELEASE(object);
zval_ptr_dtor(&tmp_offset);
if (UNEXPECTED(Z_TYPE_P(rv) ==IS_UNDEF)) {
if (UNEXPECTED(!EG(exception))) {
zend_throw_error(NULL, "Undefined offset for object of type %s used as array", ZSTR_VAL(ce->name));
}
returnNULL;
}
returnrv;
} else {
zend_bad_array_access(ce);
returnNULL;
}
}
The following figure shows the GDB debugging error.
Unsupported JIT protocol version 3054402800 in descriptor (expected 1)
Core was generated by `/home/ivs_omu_portal/httpd/bin/httpd'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 zend_std_read_dimension (object=0x100000000, offset=0xffff51ff94e0, type=65535, rv=0x0)
at /var/lib/docker/home/workspace/IVS_V1000_micloud/workcode/Micro_3rd_opensource/open_source/portalBuild/arm1620/code/php/Zend/zend_object_handlers.c:934
934 /var/lib/docker/home/workspace/IVS_V1000_micloud/workcode/Micro_3rd_opensource/open_source/portalBuild/arm1620/code/php/Zend/zend_object_handlers.c: No such file or directory.
[Current thread is 1 (LWP 3997154)]
(gdb) bt
#0 zend_std_read_dimension (object=0x100000000, offset=0xffff51ff94e0, type=65535, rv=0x0)
at /var/lib/docker/home/workspace/IVS_V1000_micloud/workcode/Micro_3rd_opensource/open_source/portalBuild/arm1620/code/php/Zend/zend_object_handlers.c:934
#1 <signal handler called>
#2 0x0000000000000000 in ?? ()
#3 0x0000000000000013 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) bt
#0 zend_std_read_dimension (object=0x100000000, offset=0xffff51ff94e0, type=65535, rv=0x0)
at /var/lib/docker/home/workspace/IVS_V1000_micloud/workcode/Micro_3rd_opensource/open_source/portalBuild/arm1620/code/php/Zend/zend_object_handlers.c:934
#1 <signal handler called>
#2 0x0000000000000000 in ?? ()
#3 0x0000000000000013 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
I checked my server configuration carefully and did not enable the Opace module. I disabled the Opace module when compiling PHP with the following configuration:
./configure --prefix=$BASEDIR/compiled-php
--with-apxs2=/home/ivs_omu_portal/httpd/bin/apxs
--with-libxml-dir=$BASEDIR/libraries-all
--with-expat
--enable-opcache=no
--disable-phar
--enable-sockets
--with-zlib
--with-jpeg
--with-freetype=$BASEDIR/libraries-all
--enable-gd
--with-iconv=$BASEDIR/libraries-all
--with-curl
--with-openssl
--with-config-file-path=/home/ivs_omu_portal/httpd/conf
--enable-mbstring
--disable-mbregex
--enable-memory-limit
--without-sqlite3
--without-pdo_sqlite
Excluding this factor, AH00051: child pid 6663 exit signal Segmentation falult(11) still occurs on our servers.
It's about the PHP script/application which causes these segfaults. As of PHP 8.1.0, there is a new feature called Fibers. Switching these from within a signal handler installed via pcntl_signal() is not properly supported.
When I was using PHP 8.1.7, the core information was Core was genreated by /home/ivs_omu_portal/httpd/bin/httpd.
Program terminated with signal SIGBUS ,Bus error.
I'm not quite sure whether this error is what you say
When PHP debugging is not enabled, I check the stack information of the GDB. The following information is displayed:
Program terminated with signal SIGSEGV,Segmentation fault
PHP 8.1 is no longer supported. If this still happens on a supported version, please open a new issue with a script that reproduces it and a backtrace from a debug build. The issue could have been caused by an extension or it could have been fixed in the meantime. Without a clear reproducible example, it's difficult to confirm.
Activity
cmb69 commentedon Jul 26, 2022
Does this happen with OPcache JIT being enabled? Which settings (especially,
opcache.jit). Can you also reproduce without OPcache?zqtop commentedon Jul 26, 2022
I checked my server configuration carefully and did not enable the Opace module. I disabled the Opace module when compiling PHP with the following configuration:
./configure --prefix=$BASEDIR/compiled-php
--with-apxs2=/home/ivs_omu_portal/httpd/bin/apxs
--with-libxml-dir=$BASEDIR/libraries-all
--with-expat
--enable-opcache=no
--disable-phar
--enable-sockets
--with-zlib
--with-jpeg
--with-freetype=$BASEDIR/libraries-all
--enable-gd
--with-iconv=$BASEDIR/libraries-all
--with-curl
--with-openssl
--with-config-file-path=/home/ivs_omu_portal/httpd/conf
--enable-mbstring
--disable-mbregex
--enable-memory-limit
--without-sqlite3
--without-pdo_sqlite
Excluding this factor, AH00051: child pid 6663 exit signal Segmentation falult(11) still occurs on our servers.
zqtop commentedon Jul 26, 2022
This problem does not occur every time. After the server runs PHP 8.1.8 for a period of time, this problem occurs and a coredump occurs.
cmb69 commentedon Jul 26, 2022
Are you possibly switching
Fibers in a signal handler?zqtop commentedon Jul 26, 2022
I don't particularly understand what software you're talking about.
cmb69 commentedon Jul 26, 2022
It's about the PHP script/application which causes these segfaults. As of PHP 8.1.0, there is a new feature called
Fibers. Switching these from within a signal handler installed viapcntl_signal()is not properly supported.zqtop commentedon Jul 26, 2022
When I was using PHP 8.1.7, the core information was Core was genreated by /home/ivs_omu_portal/httpd/bin/httpd.
Program terminated with signal SIGBUS ,Bus error.
I'm not quite sure whether this error is what you say
zqtop commentedon Jul 26, 2022
When PHP debugging is not enabled, I check the stack information of the GDB. The following information is displayed:
Program terminated with signal SIGSEGV,Segmentation fault
kamil-tekiela commentedon Nov 5, 2026
PHP 8.1 is no longer supported. If this still happens on a supported version, please open a new issue with a script that reproduces it and a backtrace from a debug build. The issue could have been caused by an extension or it could have been fixed in the meantime. Without a clear reproducible example, it's difficult to confirm.