ID: 34729 Updated by: [EMAIL PROTECTED] Reported By: matthew_peters at uk dot ibm dot com -Status: Open +Status: Feedback Bug Type: SOAP related Operating System: WinXP PHP Version: 5CVS-2005-10-04 (snap) Assigned To: dmitry New Comment:
Can you reproduce this with Linux? And NOT using some threaded webserver since we don't really support that.. Previous Comments: ------------------------------------------------------------------------ [2005-11-10 17:48:36] matthew_peters at uk dot ibm dot com Perhaps I have a bad configuration as you say but I don't know what sort of misconfiguration could cause a crash like this. One possibility: perhaps you did not see the problem because you are running Apache 1.3 whereas I am running Apache 2 ... the threading is quite different. I agree the stack trace doesn't show SoapClient anywhere but using SoapClient does provoke the problem. The problem appeared when I moved from RC1 to RC2, so it is presumably some weakness in PHP RC2 and beyond which SoapClient uncovers. ------------------------------------------------------------------------ [2005-11-08 14:54:51] [EMAIL PROTECTED] I just checked RC4 from http://downloads.php.net/ilia/ and it works fine for me (Apache/1.3.28 (Win32) PHP/5.1.0RC4). Probalby you have this bug because of missconfiguration. The debug backtrace is not related to ext/soap. ------------------------------------------------------------------------ [2005-11-01 14:52:28] matthew_peters at uk dot ibm dot com For info, still fails in the same way with RC4. I haven't rebuilt with debug to check that the call stack is the same, though. ------------------------------------------------------------------------ [2005-10-21 19:12:35] matthew_peters at uk dot ibm dot com Juts tried with RC3 and the problem is still there. I was able to build a debug build of the apache sapi and the soap extension with no problem though. Windows pops up a dialog box to take you to the debugger. It claims there has been an access violation. The call stack is NTDLL! 77f584ae() _emalloc(unsigned int 10, char * 0x013656e8 `string', unsigned int 240, char * 0x00000000, unsigned int 0) line 182 + 63 bytes _estrdup(const char * 0x00784518, char * 0x013656e8 `string', unsigned int 240, char * 0x00000000, unsigned int 0) line 403 + 25 bytes sapi_get_default_content_type(void * * * 0x00b7b7a0) line 240 + 29 bytes php_apache_request_ctor(request_rec * 0x005e2818, php_struct * 0x005e4060, void * * * 0x00b7b7a0) line 419 + 12 bytes php_handler(request_rec * 0x005e2818) line 531 + 17 bytes LIBHTTPD! 6ff0155f() It breaks quite consistently at this point. I stepped through under the debugger and the problem goes away - don't they always. sapi_get_default_context_type looks a pretty harmless piece of code that is just trying to get the default context type, and ultimately trying to do an estrdup of "test/html". I don't know why that should fail. I don't know why the SOAP client should provoke this failure in the apache sapi. Neither do I know much about how the apache sapi is supposed to work so although I would like to help debug this problem I could do with some advice. ------------------------------------------------------------------------ [2005-10-14 19:11:34] matthew_peters at uk dot ibm dot com I just checked and still fails in the same way - that is it fails and works alternately - with the latest from snaps, that is, a build dated 1014. Note I am using Windows, not Linux. I just also checked that it does work perfectly with my php5-RC1. I would try to build a debug build and look at the problem myself but my attempt to build with the soap extension enabled failed at the link step...I am not exactly sure what the right config options are. BTW we had a similar (but not identical) problem with the SDO extension that turned out to be our code calling xmlCleanupParser and reinstalling the default input handlers so they no longer went through PHP. That would cause the failures on every call from the second onward though. The exact code I am using, cut and pasted, is: the client: <?php ini_set("soap.wsdl_cache_enabled", 0); $client = new SoapClient("stockquote.wsdl", array("trace" => 1, "exceptions" => 0)); print($client->getQuote("ibm")); ?> the server:<?php $quotes = array("ibm" => 98.45); function getQuote($symbol) { global $quotes; return $quotes[$symbol]; } ini_set("soap.wsdl_cache_enabled", 0); $server = new SoapServer("C:\Program Files\Apache Group\Apache2\htdocs\stockquote.wsdl"); $server->addFunction("getQuote"); $server->handle(); ?> The wsdl is a bit larger and is taken from the article, unchanged except for the <soap:address location='http://localhost/server1.php'/> at the bottom. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/34729 -- Edit this bug report at http://bugs.php.net/?id=34729&edit=1