php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #79943 pecl/php segmentation fault (core dumped) after pecl install --force
Submitted: 2020-08-07 19:50 UTC Modified: 2021-08-05 13:44 UTC
Votes:3
Avg. Score:4.0 ± 0.8
Reproduced:3 of 3 (100.0%)
Same Version:2 (66.7%)
Same OS:1 (33.3%)
From: archon810 at gmail dot com Assigned: cmb (profile)
Status: Not a bug Package: PECL (PECL)
PHP Version: 7.4.9 OS: Linux OpenSUSE 15.2
Private report: No CVE-ID: None
 [2020-08-07 19:50 UTC] archon810 at gmail dot com
Description:
------------
pecl install msgpack
# wait for success
pecl install --force msgpack
# observe segfault at the end of the force install

Build process completed successfully
Installing '/usr/lib64/php7/extensions/msgpack.so'
Installing '/usr/include/php7/ext/msgpack/php_msgpack.h'
install ok: channel://pecl.php.net/msgpack-2.1.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=msgpack.so" to php.ini
Segmentation fault (core dumped)

Expected result:
----------------
No segfault

Actual result:
--------------
Segmentation fault (core dumped)

gdb php core.php.29968.nexus2.1596828832
GNU gdb (GDB; openSUSE Leap 15.2) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://bugs.opensuse.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from php...
Reading symbols from /usr/lib/debug/usr/bin/php-7.4.9-lp152.278.1.x86_64.debug...
[New LWP 29968]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
bCore was generated by `/usr/bin/php -C -q -d include_path=/usr/share/php7/PEAR -d date.timezone=UTC -d'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000003496 in ?? ()
Missing separate debuginfos, use: zypper install fontconfig-debuginfo-2.12.6-lp152.5.1.x86_64 glibc-debuginfo-2.26-lp152.25.10.x86_64 krb5-debuginfo-1.16.3-lp152.5.4.1.x86_64 libMagickCore-7_Q16HDRI6-debuginfo-7.0.7.34-lp152.11.6.x86_64 libMagickWand-7_Q16HDRI6-debuginfo-7.0.7.34-lp152.11.6.x86_64 libX11-6-debuginfo-1.6.5-lp152.4.5.x86_64 libXau6-debuginfo-1.0.8-lp152.3.4.x86_64 libXext6-debuginfo-1.3.3-lp152.3.4.x86_64 libXpm4-debuginfo-3.5.12-lp152.3.5.x86_64 libargon2-1-debuginfo-0.0+git20171227.670229c-lp152.4.5.x86_64 libbz2-1-debuginfo-1.0.6-lp152.6.98.x86_64 libexpat1-debuginfo-2.2.9-lp152.186.3.x86_64 libfftw3-3-debuginfo-3.3.8-lp152.101.1.x86_64 libfreetype6-debuginfo-2.10.1-lp152.2.2.1.x86_64 libgd3-debuginfo-2.2.5-lp152.8.3.x86_64 libglib-2_0-0-debuginfo-2.62.5-lp152.1.14.x86_64 libidn2-0-debuginfo-2.3.0-lp152.37.1.x86_64 libjbig2-debuginfo-2.1-lp152.3.6.x86_64 libjpeg8-debuginfo-8.1.2-lp152.7.3.x86_64 libkeyutils1-debuginfo-1.5.10-lp152.5.114.x86_64 liblcms2-2-debuginfo-2.9-lp152.80.3.x86_64 libldap-2_4-2-debuginfo-2.4.50-lp152.340.1.x86_64 liblqr-1-0-debuginfo-0.4.2-lp152.3.4.x86_64 libltdl7-debuginfo-2.4.6-9.d_t_b.34.x86_64 liblzma5-debuginfo-5.2.3-lp152.5.100.x86_64 libnghttp2-14-debuginfo-1.41.0-lp152.1.1.x86_64 libopenssl1_1-debuginfo-1.1.1g-lp152.80.15.x86_64 libpcre1-debuginfo-8.41-lp152.6.104.x86_64 libpcre2-8-0-debuginfo-10.35-lp152.49.3.x86_64 libpng16-16-debuginfo-1.6.34-lp152.4.6.x86_64 libpsl5-debuginfo-0.20.1-lp152.3.7.x86_64 libsasl2-3-debuginfo-2.1.26-lp152.7.3.x86_64 libselinux1-debuginfo-3.0-lp152.1.47.x86_64 libssh4-debuginfo-0.9.4-lp152.67.1.x86_64 libstdc++6-debuginfo-9.3.1+git1296-lp152.2.3.1.x86_64 libtiff5-debuginfo-4.0.9-lp152.10.6.x86_64 libunistring2-debuginfo-0.9.10-lp152.63.1.x86_64 libxcb1-debuginfo-1.13-lp152.4.5.x86_64 libxml2-2-debuginfo-2.9.7-lp152.9.1.x86_64 libz1-debuginfo-1.2.11-lp152.26.1.x86_64 php7-ctype-debuginfo-7.4.9-lp152.278.1.x86_64 php7-curl-debuginfo-7.4.9-lp152.278.1.x86_64 php7-dom-debuginfo-7.4.9-lp152.278.1.x86_64 php7-exif-debuginfo-7.4.9-lp152.278.1.x86_64 php7-fileinfo-debuginfo-7.4.9-lp152.278.1.x86_64 php7-imagick-debuginfo-3.4.4-lp152.32.1.x86_64 php7-json-debuginfo-7.4.9-lp152.278.1.x86_64 php7-mbstring-debuginfo-7.4.9-lp152.278.1.x86_64 php7-opcache-debuginfo-7.4.9-lp152.278.1.x86_64
(gdb) bt
#0  0x0000000000003496 in ?? ()
#1  0x00007f353844ab4b in zm_shutdown_msgpack (type=<optimized out>, module_number=<optimized out>) at /tmp/pear/temp/msgpack/msgpack.c:101
#2  0x0000556643cae6bb in module_destructor (module=module@entry=0x55664430d1e0) at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend_API.c:2563
#3  0x0000556643ca77bc in module_destructor_zval (zv=<optimized out>) at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend.c:768
#4  0x0000556643cba341 in _zend_hash_del_el_ex (prev=<optimized out>, p=<optimized out>, idx=26, ht=<optimized out>) at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend_hash.c:1305
#5  _zend_hash_del_el (p=0x5566443a3ce0, idx=26, ht=0x5566442798c0 <module_registry>) at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend_hash.c:1328
#6  zend_hash_graceful_reverse_destroy (ht=ht@entry=0x5566442798c0 <module_registry>) at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend_hash.c:1782
#7  0x0000556643caca0c in zend_destroy_modules () at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend_API.c:1995
#8  0x0000556643ca8ba3 in zend_shutdown () at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/Zend/zend.c:1055
#9  0x0000556643c3b172 in php_module_shutdown () at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/main/main.c:2481
#10 0x0000556643ac98b3 in main (argc=18, argv=0x5566442fb910) at /usr/src/debug/php7-7.4.9-lp152.278.1.x86_64/sapi/cli/php_cli.c:1374
(gdb) quit

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-08-07 19:52 UTC] archon810 at gmail dot com
To clarify, this happens when force installing any PHP extension with pecl over an already installed extension.

For example:
pecl install --force stats-2.0.3
pecl install --force APCu_bc-beta
etc.
 [2021-08-05 13:44 UTC] cmb@php.net
-Status: Open +Status: Not a bug -Assigned To: +Assigned To: cmb
 [2021-08-05 13:44 UTC] cmb@php.net
Yes, that's a known issue.  On Linux, it is possible to replace a
shared object file that is in use, but that likely causes issues
(the segfault in your case).  There is a detailed answer on Stack
Overflow[1].  Anyhow, this is not a php.net issue, but rather
related to the pear installer, so please report it there[2].

[1] <https://stackoverflow.com/questions/7767325/replacing-shared-object-so-file-while-main-program-is-running#answer-7779703>
[2] <https://pear.php.net/bugs/>
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Mar 19 09:01:30 2024 UTC