【问题标题】:segmentation fault php7 symfony cli command using soap使用soap的分段错误php7 symfony cli命令
【发布时间】:2016-11-29 12:58:56
【问题描述】:

我正在尝试从 php5.6 和 symfony2 分别升级到 php7 和 symfony3。我有一些 symfony 控制台命令,它们使用soap 请求第三方api。

升级到 php7 和 php7.0-soap 后,命令失败并出现分段错误。我尝试用 gdb 调试,下面是跟踪。看起来这是 php7.0-soap 的问题?解决办法是什么?

Program received signal SIGSEGV, Segmentation fault.
0x00005555557bc4db in zend_hash_destroy ()
(gdb) bt
#0  0x00005555557bc4db in zend_hash_destroy ()
#1  0x00007fffecbbe141 in delete_type_persistent () from /usr/lib/php/20151012/soap.so
#2  0x00005555557bc5dd in zend_hash_destroy ()
#3  0x00007fffecbc55f1 in ?? () from /usr/lib/php/20151012/soap.so
#4  0x00007fffecbc565f in ?? () from /usr/lib/php/20151012/soap.so
#5  0x00005555557bc4d2 in zend_hash_destroy ()
#6  0x00007fffecb95f0b in zm_shutdown_soap () from /usr/lib/php/20151012/soap.so
#7  0x00005555557b25f3 in module_destructor ()
#8  0x00005555557ab08c in ?? ()
#9  0x00005555557bd048 in zend_hash_graceful_reverse_destroy ()
#10 0x00005555557ac055 in zend_shutdown ()
#11 0x000055555574fb3b in php_module_shutdown ()
#12 0x000055555563d796 in main ()

【问题讨论】:

  • 我遇到了类似的段错误:Program received signal SIGSEGV, Segmentation fault. 0x00007f85375094bb in zend_hash_destroy () from /etc/httpd/modules/libphp-7.0.so (gdb) backtrace #0 0x00007f85375094bb in zend_hash_destroy () from /etc/httpd/modules/libphp-7.0.so #1 0x00007f852e356a3e in ?? () from /usr/lib64/php/7.0/modules/soap.so #2 0x00007f85375095bd in zend_hash_destroy () from /etc/httpd/modules/libphp-7.0.so(以及更多)我还发现了这个:bugs.php.net/bug.php?id=71931

标签: soap segmentation-fault symfony php-7


【解决方案1】:

你暂时不能在PHP7中使用WSDL_CACHE_MEMORY(或WSDL_CACHE_BOTH):https://bugs.php.net/bug.php?id=71931

通过在php.ini 中设置soap.wsdl_cache 来改用WSDL_CACHE_DISK,或者 - 如果您无权访问php.ini - 使用ini_set

ini_set('soap.wsdl_cache', WSDL_CACHE_DISK);

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多