#49169 [Com]: SoapServer calls wrong function, although "SOAP action" header is correct
ID: 49169 Comment by: robin dot harvey at chaptereight dot com Reported By: jeroen at asystance dot nl Status: Verified Bug Type: SOAP related Operating System: linux PHP Version: 5.2SVN-2009-08-05 (snap) New Comment: @bigdan at gmail dot com The workaround I'm using is to set up my WSDL so that all methods have a unique input type signature. Of course this leads to an ugly and unnecessarily bloated WSDL, but there's not much other choice (other than WS02 PHP, that is) Previous Comments: [2009-09-18 14:10:39] jeroen at asystance dot nl bigdan, I think you left out one option: this _is_ a bug. Using RPC style _is_ a workaround, but one that doesn't always work. The real problem is that SOAP should use the SOAPAction header to determine which operation to call, not guess based on parameters (which is what it looks to be doing now). While the comment you refer to does point out this very issue and predates this bug, that doesn't mean it's not a bug. Rather the commenter could (and should?) have filed this as a bug more than a year ago. [2009-09-18 13:51:18] bigdan at gmail dot com Nevermind on the workaround - either this is not a bug, this issue was noticed well before this bug, or the comments here are entirely unrelated though they correct the issue for me: http://us3.php.net/manual/en/soapserver.handle.php#81750 TLDR: Instead of http://bugs.php.net/49169 -- Edit this bug report at http://bugs.php.net/?id=49169&edit=1
#49169 [Com]: SoapServer calls wrong function, although "SOAP action" header is correct
ID: 49169 Comment by: robin dot harvey at chaptereight dot com Reported By: jeroen at asystance dot nl Status: Open Bug Type: SOAP related Operating System: linux PHP Version: 5.2SVN-2009-08-05 (snap) New Comment: Hi, This bug is affecting me too, and I've noticed that it's only the input parameters which trigger the bug - 2 functions can have the same output and they are treated individually. Also, it seems that it's the order of the wsdl:binding/wsdl:operation declarations which makes a difference, swapping the wsdl:portType/wsdl:operation or wsdl:message ordering does not trigger the bug. HTH --Robin Previous Comments: [2009-08-05 11:13:06] jeroen at asystance dot nl The correct link to the test case is http://jayvee.nl/soaptest2.tar (without the comma) [2009-08-05 11:11:00] jeroen at asystance dot nl Description: When two s have the same API (that is, have the same s), the SoapServer calls the function corresponding to the _first_ specified in the , even although the SoapClient sends the correct "SOAP action" header, which is correctly received on the server. Reproduce code: --- Download http://jayvee.nl/soaptest2.tar, untar and change the URL in interface.wsdl call SAOPTest.php, which is both a client and server. The server will produce a log that the client outputs, so you can see what the server is doing. Expected result: Independent of the order in which the s are listed in the element, the SoapServer should call the function corresponding to the "SOAP action" header specified in the request. Actual result: -- The SoapServer always calls the function corresponding to the _first_ specified. In the test case, the server will call "function operation1()" twice, even though the second call is to operation2, and the "SOAP action" header's value is "operation2" To verify, switch the elements in the element and run SOAPTest.php. You will see that the server will call "function operation2()" twice, even though the "SOAP action" headers are different. -- Edit this bug report at http://bugs.php.net/?id=49169&edit=1
#40609 [Csd]: Segfaults when using more than one SoapVar in a request
ID: 40609 User updated by: robin dot harvey at chaptereight dot com Reported By: robin dot harvey at chaptereight dot com Status: Closed Bug Type: SOAP related Operating System: Linux - Ubuntu PHP Version: 5.2.1 Assigned To: dmitry New Comment: Thanks for sorting this out so quickly guys - the fix works perfectly! --Robin Previous Comments: [2007-02-25 13:25:23] [EMAIL PROTECTED] Fixed in CVS HEAD and PHP_5_2. Thanks to Rob. [2007-02-24 14:08:31] robin dot harvey at chaptereight dot com Hi, I've uploaded the Soap service to an accessible site, and produced a backtrace, as requested. I've not used dbg before, so please let me know if i've done something wrong. I recompiled php with --enable-debug: heres the configure line: './configure' \ '--with-apxs2=/usr/bin/apxs2' \ '--with-zlib' \ '--with-bz2' \ '--with-pdo-mysql' \ '--with-pdo-pgsql' \ '--with-xsl' \ '--with-pear' \ '--enable-soap' \ '--enable-ftp' \ '--with-gd' \ '--enable-mbstring' \ '--enable-sockets' \ '--with-mcrypt' \ '--enable-debug' Here's a copy of the php script I'm using: be nice for a old chum XML; $xml2 = << Run it through to see what's going on XML; $c = new SoapClient('http://bluelines.org:8080/axis2/services/StockQuoteService?wsdl'); $sv1 = new SoapVar($xml1, XSD_ANYXML); $sv2 = new SoapVar($xml2, XSD_ANYXML); $c->update(array('symbol' => $sv1, 'price' => $sv2)); ?> ...and the dbg session, with a backtrace... (gdb) set args /home/robin/tmp/40609.php (gdb) run Starting program: /usr/local/bin/php /home/robin/tmp/40609.php (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 46912533505280 (LWP 23881)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) ---Type to continue, or q to quit--- Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 46912533505280 (LWP 23881)] 0x00642c51 in encode_add_ns () (gdb) bt #0 0x00642c51 in encode_add_ns () #1 0x00639c62 in to_zval_user () #2 0x00639f42 in to_zval_user () #3 0x0063a71d in to_zval_user () #4 0x006420d5 in sdl_guess_convert_xml () #5 0x00634b37 in master_to_xml () #6 0x0062c8c6 in add_soap_fault () #7 0x0062c781 in add_soap_fault () #8 0x0062ba97 in add_soap_fault () #9 0x00624448 in zim_SoapClient_SoapClient () #10 0x00625f40 in zim_SoapClient___call () #11 0x007fd2f8 in zend_call_function () #12 0x00827112 in zend_call_method () #13 0x00830aca in zend_std_call_user_call () #14 0x00834ecd in execute () #15 0x00835daa in execute () #16 0x00834912 in execute () #17 0x0080c9e8 in zend_execute_scripts () #18 0x007ae109 in php_execute_script () #19 0x0089170a in main () Many thanks, --Robin [2007-02-23 17:48:16] [EMAIL PROTECTED] 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. An accessible WSDL might also be helpful [2007-02-23 17:12:38] robin dot harvey at chaptereight dot com Description: I've got a very simple soap service (written in Java/Tomcat/Axis) which simply accepts and logs the XML of a soap request. I need to post complex XML to the server (an XSL stylesheet) and I'
#40609 [Fbk->Opn]: Segfaults when using more than one SoapVar in a request
ID: 40609 User updated by: robin dot harvey at chaptereight dot com Reported By: robin dot harvey at chaptereight dot com -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Linux - Ubuntu PHP Version: 5.2.1 New Comment: Hi, I've uploaded the Soap service to an accessible site, and produced a backtrace, as requested. I've not used dbg before, so please let me know if i've done something wrong. I recompiled php with --enable-debug: heres the configure line: './configure' \ '--with-apxs2=/usr/bin/apxs2' \ '--with-zlib' \ '--with-bz2' \ '--with-pdo-mysql' \ '--with-pdo-pgsql' \ '--with-xsl' \ '--with-pear' \ '--enable-soap' \ '--enable-ftp' \ '--with-gd' \ '--enable-mbstring' \ '--enable-sockets' \ '--with-mcrypt' \ '--enable-debug' Here's a copy of the php script I'm using: be nice for a old chum XML; $xml2 = << Run it through to see what's going on XML; $c = new SoapClient('http://bluelines.org:8080/axis2/services/StockQuoteService?wsdl'); $sv1 = new SoapVar($xml1, XSD_ANYXML); $sv2 = new SoapVar($xml2, XSD_ANYXML); $c->update(array('symbol' => $sv1, 'price' => $sv2)); ?> ...and the dbg session, with a backtrace... (gdb) set args /home/robin/tmp/40609.php (gdb) run Starting program: /usr/local/bin/php /home/robin/tmp/40609.php (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 46912533505280 (LWP 23881)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) ---Type to continue, or q to quit--- Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 46912533505280 (LWP 23881)] 0x00642c51 in encode_add_ns () (gdb) bt #0 0x00642c51 in encode_add_ns () #1 0x00639c62 in to_zval_user () #2 0x00639f42 in to_zval_user () #3 0x0063a71d in to_zval_user () #4 0x006420d5 in sdl_guess_convert_xml () #5 0x00634b37 in master_to_xml () #6 0x0062c8c6 in add_soap_fault () #7 0x0062c781 in add_soap_fault () #8 0x0062ba97 in add_soap_fault () #9 0x00624448 in zim_SoapClient_SoapClient () #10 0x00625f40 in zim_SoapClient___call () #11 0x007fd2f8 in zend_call_function () #12 0x00827112 in zend_call_method () #13 0x00830aca in zend_std_call_user_call () #14 0x00834ecd in execute () #15 0x00835daa in execute () #16 0x00834912 in execute () #17 0x0080c9e8 in zend_execute_scripts () #18 0x007ae109 in php_execute_script () #19 0x0089170a in main () Many thanks, --Robin Previous Comments: [2007-02-23 17:48:16] [EMAIL PROTECTED] 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. An accessible WSDL might also be helpful [2007-02-23 17:12:38] robin dot harvey at chaptereight dot com Description: I've got a very simple soap service (written in Java/Tomcat/Axis) which simply accepts and logs the XML of a soap request. I need to post complex XML to the server (an XSL stylesheet) and I'm using SoapVar with XSD_ANYXML and dealing with the XSL as a string in PHP. When I try to add more than one SoapVar object encoded in this way, PHP segfaults. It's happy with 1 param as a SoapVar, and with both as simple strings. Reproduce code: --- http://192.168.1.79:8080/axis2/services/BuddyTestService?wsdl'); $data1 = << the transform go h
#40609 [NEW]: Segfaults when using more than one SoapVar in a request
From: robin dot harvey at chaptereight dot com Operating system: Linux - Ubuntu PHP version: 5.2.1 PHP Bug Type: SOAP related Bug description: Segfaults when using more than one SoapVar in a request Description: I've got a very simple soap service (written in Java/Tomcat/Axis) which simply accepts and logs the XML of a soap request. I need to post complex XML to the server (an XSL stylesheet) and I'm using SoapVar with XSD_ANYXML and dealing with the XSL as a string in PHP. When I try to add more than one SoapVar object encoded in this way, PHP segfaults. It's happy with 1 param as a SoapVar, and with both as simple strings. Reproduce code: --- http://192.168.1.79:8080/axis2/services/BuddyTestService?wsdl'); $data1 = << the transform go here! XML; $data2 = << Random content sent to the soap server XML; $tdata = new SoapVar($data1, XSD_ANYXML); $t = new SoapVar($data2, XSD_ANYXML); $data = array('TransformData' => $tdata, 'Transform' => $t); //$data = array('TransformData' => 'foo', 'Transform' => 'bar'); $s->examine($data); ?> Expected result: NULL. The service is 'In only' Actual result: -- [EMAIL PROTECTED]:~/projects/buddy/tomcat/soap2$ php test-client-joe.php Segmentation fault (core dumped) -- Edit bug report at http://bugs.php.net/?id=40609&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=40609&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=40609&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=40609&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=40609&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=40609&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=40609&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=40609&r=needscript Try newer version:http://bugs.php.net/fix.php?id=40609&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=40609&r=support Expected behavior:http://bugs.php.net/fix.php?id=40609&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=40609&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=40609&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=40609&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=40609&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=40609&r=dst IIS Stability:http://bugs.php.net/fix.php?id=40609&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=40609&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=40609&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=40609&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=40609&r=mysqlcfg