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

Reply via email to