Bug #71931 [Com]: Soap cache_wsdl WSDL_CACHE_MEMORY option on CLI
| From: | dominic at varspool dot com | Date: | Tue, 04 Oct 2016 23:45:54 +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-204457@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: dominic at varspool 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:
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 ()
Previous Comments:
------------------------------------------------------------------------
[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