Bug #71931 [Com]: Soap cache_wsdl WSDL_CACHE_MEMORY option on CLI

From: Date: Thu, 20 Oct 2016 07:00:24 +0000
Subject: Bug #71931 [Com]: Soap cache_wsdl WSDL_CACHE_MEMORY option on CLI
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-204930@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=71931&edit=1 ID: 71931 Comment by: fedoreyev at gmail dot com Reported by: nikspijkerman at gmail dot com Summary: Soap cache_wsdl WSDL_CACHE_MEMORY option on CLI Status: Open Type: Bug Package: SOAP related Operating System: Ubuntu 14.04 PHP Version: 7.0.4 Block user comment: N Private report: N New Comment: GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7 Copyright (C) 2013 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-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /opt/php-7.1.0d/bin/php...done. warning: core file may not match specified executable file. [New LWP 21224] Missing separate debuginfo for /lib64/libmysqlclient.so.18 Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/97/92a5f335292ffd1eca1fefeb50672acaae2e07.debug [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `/opt/php-7.1.0d/bin/php /home/vlru/adventure/app/console_test yading --env=dr'. Program terminated with signal 11, Segmentation fault. #0 0x0000000000a2464d in zend_string_release (s=0x7f4ceb3be9b0) at /usr/local/src/php-7.1.0RC4/Zend/zend_string.h:270 270 if (!ZSTR_IS_INTERNED(s)) { Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.26-20.el7_2.x86_64 freetype-2.4.11-11.el7.x86_64 glibc-2.17-106.el7_2.8.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.13.2-12.el7_2.x86_64 libcom_err-1.42.9-7.el7.x86_64 libcurl-7.29.0-25.el7.centos.x86_64 libgcc-4.8.5-4.el7.x86_64 libgcrypt-1.5.3-12.el7_1.1.x86_64 libgpg-error-1.12-3.el7.x86_64 libidn-1.28-4.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libmcrypt-2.5.8-13.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.2.2-6.el7.x86_64 libssh2-1.4.3-10.el7_2.1.x86_64 libstdc++-4.8.5-4.el7.x86_64 libtidy-0.99.0-31.20091203.el7.x86_64 libxml2-2.9.1-6.el7_2.3.x86_64 libxslt-1.1.28-5.el7.x86_64 nspr-4.11.0-1.el7_2.x86_64 nss-3.21.0-9.el7_2.x86_64 nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64 nss-util-3.21.0-2.2.el7_2.x86_64 openldap-2.4.40-9.el7_2.x86_64 openssl-libs-1.0.1e-51.el7_2.5.x86_64 pcre-8.32-15.el7_2.1.x86_64 xz-libs-5.1.2-12alpha.el7.x86_64 zlib-1.2.7-15.el7.x86_64 (gdb) bt #0 0x0000000000a2464d in zend_string_release (s=0x7f4ceb3be9b0) at /usr/local/src/php-7.1.0RC4/Zend/zend_string.h:270 #1 0x0000000000a287af in zend_hash_destroy (ht=0x1bbd2f0) at /usr/local/src/php-7.1.0RC4/Zend/zend_hash.c:1251 #2 0x00000000007e3727 in delete_type_persistent (zv=0x1b8eb18) at /usr/local/src/php-7.1.0RC4/ext/soap/php_schema.c:2459 #3 0x0000000000a28714 in zend_hash_destroy (ht=0x1b8da00) at /usr/local/src/php-7.1.0RC4/Zend/zend_hash.c:1238 #4 0x00000000007f1a17 in delete_psdl_int (p=0x1be5340) at /usr/local/src/php-7.1.0RC4/ext/soap/php_sdl.c:3130 #5 0x00000000007f1ad7 in delete_psdl (zv=0x1b8d430) at /usr/local/src/php-7.1.0RC4/ext/soap/php_sdl.c:3150 #6 0x0000000000a287ea in zend_hash_destroy (ht=0x1b00000) at /usr/local/src/php-7.1.0RC4/Zend/zend_hash.c:1257 #7 0x00000000007b3963 in zm_shutdown_soap (type=1, module_number=33) at /usr/local/src/php-7.1.0RC4/ext/soap/soap.c:598 #8 0x0000000000a1dc9c in module_destructor (module=0x19866d0) at /usr/local/src/php-7.1.0RC4/Zend/zend_API.c:2499 #9 0x0000000000a12021 in module_destructor_zval (zv=0x7ffd2f850270) at /usr/local/src/php-7.1.0RC4/Zend/zend.c:632 #10 0x0000000000a27dfd in _zend_hash_del_el_ex (ht=0x1444dc0 <module_registry>, idx=32, p=0x19ba5a0, prev=0x0) at /usr/local/src/php-7.1.0RC4/Zend/zend_hash.c:1000 #11 0x0000000000a27ec8 in _zend_hash_del_el (ht=0x1444dc0 <module_registry>, idx=32, p=0x19ba5a0) at /usr/local/src/php-7.1.0RC4/Zend/zend_hash.c:1023 #12 0x0000000000a291b5 in zend_hash_graceful_reverse_destroy (ht=0x1444dc0 <module_registry>) at /usr/local/src/php-7.1.0RC4/Zend/zend_hash.c:1479 #13 0x0000000000a1bc57 in zend_destroy_modules () at /usr/local/src/php-7.1.0RC4/Zend/zend_API.c:1978 #14 0x0000000000a1268d in zend_shutdown () at /usr/local/src/php-7.1.0RC4/Zend/zend.c:860 #15 0x0000000000984084 in php_module_shutdown () at /usr/local/src/php-7.1.0RC4/main/main.c:2401 #16 0x0000000000af4610 in main (argc=4, argv=0x197cb30) at /usr/local/src/php-7.1.0RC4/sapi/cli/php_cli.c:1393 Previous Comments: ------------------------------------------------------------------------ [2016-10-04 23:49:03] dominic at varspool dot com Sorry, more symbols: #0 zend_hash_destroy (ht=0x55555656c0f0) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_hash.c:1278 #1 0x00007fffe7e81f51 in delete_type_persistent (zv=<optimized out>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/php_schema.c:2459 #2 0x00005555557b9ead in zend_hash_destroy (ht=0x5555563500f0) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_hash.c:1265 #3 0x00007fffe7e89401 in delete_psdl_int (p=<optimized out>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/php_sdl.c:3130 #4 0x00007fffe7e8946f in delete_psdl (zv=0x555556627c60) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/php_sdl.c:3150 #5 0x00005555557b9da2 in zend_hash_destroy (ht=0x555556351320) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_hash.c:1276 #6 0x00007fffe7e59f0b in zm_shutdown_soap (type=<optimized out>, module_number=41) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/soap.c:598 #7 0x00005555557affa3 in module_destructor (module=module@entry=0x555555c27430) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_API.c:2505 #8 0x00005555557a8a4c in module_destructor_zval (zv=<optimized out>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend.c:615 #9 0x00005555557ba918 in _zend_hash_del_el_ex (prev=<optimized out>, p=<optimized out>, idx=<optimized out>, ht=<optimized out>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_hash.c:1026 #10 _zend_hash_del_el (p=0x555555c1c550, idx=40, ht=0x555555b87860 <module_registry>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_hash.c:1050 #11 zend_hash_graceful_reverse_destroy (ht=ht@entry=0x555555b87860 <module_registry>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_hash.c:1502 #12 0x00005555557ae39c in zend_destroy_modules () at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend_API.c:1984 #13 0x00005555557a9a15 in zend_shutdown () at /build/php7.0-j_qgKJ/php7.0-7.0.11/Zend/zend.c:840 #14 0x000055555574d20b in php_module_shutdown () at /build/php7.0-j_qgKJ/php7.0-7.0.11/main/main.c:2362 #15 0x000055555563cb36 in main (argc=7, argv=0x555555b8ad20) at /build/php7.0-j_qgKJ/php7.0-7.0.11/sapi/cli/php_cli.c:1359 ------------------------------------------------------------------------ [2016-10-04 23:45:53] dominic at varspool dot com Still present in 7.0.11 Seen this in Ondrej Sury's builds, but also in the Docker library images (https://hub.docker.com/_/php/) which are completely different, so it's unlikely to be related to packaging. Here's a bt with debugging symbols against 7.0.11 Program received signal SIGSEGV, Segmentation fault. 0x00005555557b9dab in zend_hash_destroy () (gdb) bt #0 0x00005555557b9dab in zend_hash_destroy () #1 0x00007fffe7e81f51 in delete_type_persistent (zv=<optimized out>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/php_schema.c:2459 #2 0x00005555557b9ead in zend_hash_destroy () #3 0x00007fffe7e89401 in delete_psdl_int (p=<optimized out>) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/php_sdl.c:3130 #4 0x00007fffe7e8946f in delete_psdl (zv=0x555556f0fc90) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/php_sdl.c:3150 #5 0x00005555557b9da2 in zend_hash_destroy () #6 0x00007fffe7e59f0b in zm_shutdown_soap (type=<optimized out>, module_number=41) at /build/php7.0-j_qgKJ/php7.0-7.0.11/ext/soap/soap.c:598 #7 0x00005555557affa3 in module_destructor () #8 0x00005555557a8a4c in ?? () #9 0x00005555557ba918 in zend_hash_graceful_reverse_destroy () #10 0x00005555557a9a15 in zend_shutdown () #11 0x000055555574d20b in php_module_shutdown () #12 0x000055555563cb36 in main () ------------------------------------------------------------------------ [2016-05-19 09:12:17] johan-php at localhost dot nl It's still there in 7.0.6 (Ubuntu 16.04). ------------------------------------------------------------------------ [2016-04-11 18:03:12] colin at mollenhour dot com I have an almost identical segfault backtrace in a project not related to Symphony. I removed the option for WSDL_CACHE_BOTH and will see if it resolved the issue but either way seems to be a bug in the SOAP module. PHP 7.0.5 - Ubuntu 14.04 - ondrej/php build ------------------------------------------------------------------------ [2016-03-31 10:34:30] nikspijkerman at gmail dot com Description: ------------ Using the SoapClient option cache_wsdl: WSDL_CACHE_MEMORY and/or WSDL_CACHE_BOTH from the Symfony 2.8 Console causes a segmentation fault. Using WSDL_CACHE_DISK does not throw an error. Simply executing the script from a plain PHP file does not seem to reproduce the fault. [New LWP 29769] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `php app/console provider:generate_dfp_services'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f91f03700db in zend_hash_destroy () (gdb) bt #0 0x00007f91f03700db in zend_hash_destroy () #1 0x00007f91dfaa7f31 in delete_type_persistent () from /usr/lib/php/20151012/soap.so #2 0x00007f91f03701dd in zend_hash_destroy () #3 0x00007f91dfaaf3e1 in ?? () from /usr/lib/php/20151012/soap.so #4 0x00007f91dfaaf44f in ?? () from /usr/lib/php/20151012/soap.so #5 0x00007f91f03700d2 in zend_hash_destroy () #6 0x00007f91dfa7ff0b in zm_shutdown_soap () from /usr/lib/php/20151012/soap.so #7 0x00007f91f0366313 in module_destructor () #8 0x00007f91f035eedc in ?? () #9 0x00007f91f0370c48 in zend_hash_graceful_reverse_destroy () #10 0x00007f91f035fea5 in zend_shutdown () #11 0x00007f91f0303f6b in php_module_shutdown () #12 0x00007f91f01f4486 in main () Test script: --------------- use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class MySoapClientCommand extends ContainerAwareCommand { protected function configure() { $this->setName('app:mysoapclient'); } protected function execute(InputInterface $input, OutputInterface $output) { $wsdl = 'https://ads.google.com/apis/ads/publisher/v201502/ActivityService?wsdl'; $client = new \SoapClient($wsdl, ['cache_wsdl' => WSDL_CACHE_MEMORY]); } } Then from the CLI: $ php app/console app:mysoapclient ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=71931&edit=1

« previous php.bugs (#204930) next »