php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #74331 ph_soap crashes apache (x64 only)
Submitted: 2017-03-29 12:11 UTC Modified: 2017-04-04 14:36 UTC
From: jerome dot celle at gmail dot com Assigned:
Status: Closed Package: SOAP related
PHP Version: 7.1.3 OS: windows 7 64 bits
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: jerome dot celle at gmail dot com
New email:
PHP Version: OS:

 

 [2017-03-29 12:11 UTC] jerome dot celle at gmail dot com
Description:
------------
Configuration:
- Windows 7 64 bits
- httpd-2.4.25-win64-VC14
- php-7.1.3-Win32-VC14-x64

A simple call to SoapClient (see below) crashes the httpd process.
If I revert to x86 versions of both apache and php, it works just fine.

Excerpt from Event Viewer:
Faulting application name: httpd.exe, version: 2.4.25.0, time stamp: 0x58550e9f
Faulting module name: php_soap.dll, version: 7.1.3.0, time stamp: 0x58c888b7
Exception code: 0xc0000005
Fault offset: 0x000000000001e271
Faulting process id: 0x3bcc
Faulting application start time: 0x01d2a88404203e14
Faulting application path: C:\apache\bin\httpd.exe
Faulting module path: c:\php\ext\php_soap.dll
Report Id: 449372a4-1477-11e7-95e7-f0d5bfd3a21f

Test script:
---------------
$client = new SoapClient(  $someurl, array( 'login' => $my_login, 'password' => $my_password ));



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-03-29 13:30 UTC] ab@php.net
-Status: Open +Status: Feedback
 [2017-03-29 13:30 UTC] ab@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php for *NIX and
http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32

Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.


 [2017-03-30 08:25 UTC] jerome dot celle at gmail dot com
I could not yet produce the backtrace (it is a bit complex for me).
Nevertheless, during my attempt to do it, I had to run apache as a standalone application (httpd -X) and not as a service.
In this context there is NO crash: the soap call all succeed.
Maybe it helps.
 [2017-03-30 14:23 UTC] jerome dot celle at gmail dot com
I think I managed to produce the backtrace.
Can't see how to attach it to the ticket...
 [2017-03-30 14:55 UTC] requinix@php.net
You can probably just put it into a comment. If you feel it may be too long then a pastebin or gist or something like that is fine too.
 [2017-03-31 05:36 UTC] phpdev at ehrhardt dot nl
This bug report was initiated at Apachelounge:
https://www.apachelounge.com/viewtopic.php?p=35105#35105

I tried to reproduce it with the same config, but did not succeed. The Soap login went just fine with PHP 7.1.3 TS x64, running as mod_php under Apache 2.4.25 Win64 VC14.
 [2017-03-31 12:36 UTC] jerome dot celle at gmail dot com
Here is the info I think useful from backtrace:

PHP_SOAP!SDL_DESERIALIZE_STRING+11In httpd__PID__15704__Date__03_30_2017__Time_10_18_20AM__988__Second_Chance_Exception_C0000005.dmp the assembly instruction at php_soap!sdl_deserialize_string+11 in c:\php\ext\php_soap.dll from The PHP Group has caused an access violation exception (0xC0000005) when trying to read from memory location 0x755b747c on thread 10

php_soap!sdl_deserialize_string+11 
php_soap!get_sdl_from_cache+171 
php_soap!get_sdl+382 
php_soap!zim_SoapClient_SoapClient+b78 
php7ts!ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER+d2 
php7ts!execute_ex+64 
php7ts!zend_execute+1d1 
php7ts!zend_execute_scripts+13e 
php7ts!php_execute_script+4f8 
php7apache2_4!php_handler+635 
libhttpd!ap_run_handler+35 
libhttpd!ap_invoke_handler+110 
libhttpd!ap_internal_redirect_handler+29a 
libhttpd!ap_process_request+17 
libhttpd!ap_byterange_filter+1533 
libhttpd!ap_run_process_connection+35 
libhttpd!ap_process_connection+45 
libhttpd!ap_run_generate_log_id+3d9a 
kernel32!BaseThreadInitThunk+d 
ntdll!RtlUserThreadStart+1d
 [2017-04-02 01:15 UTC] ab@php.net
Thanks for the backtrace. I'd suspect there might be something with the cached WSDL stuff like accessing the cache generated by a different PHP version. Unfortunately it's hard to say more without a reproduce case, could please a self contained reproducer be provided?

Thanks.
 [2017-04-03 09:20 UTC] jerome dot celle at gmail dot com
-Status: Feedback +Status: Open
 [2017-04-03 09:20 UTC] jerome dot celle at gmail dot com
Good catch !
At some point I cleaned this cache to test, I guess I did not do it well because this morning, cleaning it again and changing the soap cache directory in php.ini to a brand new location I was pleased to see it work perfectly.
Thanks and sorry for the 'false' bug.
 [2017-04-04 14:36 UTC] jerome dot celle at gmail dot com
-Status: Open +Status: Closed
 [2017-04-04 14:36 UTC] jerome dot celle at gmail dot com
Not a bug.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 12:01:31 2024 UTC