Hallo Andrei,
yesterday I tried the newest PHP 5.1 snapshot on my SunONE webserver
(I am the maintainer of the NSAPI SAPI code). This webserver is
multithreaded so your new WSDL caching code in ext/soap should work
great. But it doesn't.
The first call to a php script that uses SoapClient works correct
(everytime). Further requests to the same script crash the webserver
with SIGSERV, SIGBUS, etc.
Here are some different the crashs I have seen yesterday. The problem
is that it happens at totally different locations, most times there
is not even a core dump available that can be analyzed (stack is
corrupt so no dump availabe):
[13/Apr/2006:16:49:35] info (25237): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:18:38:15] info ( 8381): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:18:38:15] info ( 8381): CORE3262: Crash occurred in
function master_to_xml from module /pangaea/webserver61/bin/libphp5.so
[13/Apr/2006:18:44:03] info (11702): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:18:44:03] info (11702): CORE3262: Crash occurred in
function encode_reset_ns from module /pangaea/webserver61/bin/libphp5.so
[13/Apr/2006:19:02:17] info (12182): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:19:02:17] info (12182): CORE3262: Crash occurred in
function strcmp from module /usr/lib/libc.so.1
[13/Apr/2006:20:02:13] info ( 1965): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:20:02:13] info ( 1965): CORE3262: Crash occurred in
function encode_reset_ns from module /pangaea/webserver61/bin/libphp5.so
[13/Apr/2006:20:04:37] info ( 3221): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:20:04:37] info ( 3221): CORE3262: Crash occurred in
function whiteSpace_collapse from module /pangaea/webserver61/bin/libphp5.so
[13/Apr/2006:20:13:10] info ( 5916): CORE3261: Crash occurred in
NSAPI SAF php5_execute
[13/Apr/2006:20:13:10] info ( 5916): CORE3262: Crash occurred in
function whiteSpace_collapse from module /pangaea/webserver61/bin/libphp5.so
When I disable soap.wsdl-cache completely, everything works again
without any crash. I have seen that wirth the new code no longer
/tmp/wsdl-XXXXX files are generated. Is there a possibility to switch
to the older file-based caching code? For eaxample as enumeration in
the wsdl-cache php.ini configuration option? Is there any other
possibility to disable the wsdl cache code without undoing a lot of
soap patches? I want to update the webserver because of security
reasons to latest snapshot.
Do you have similar problems with other webservers that are multithreaded?
Sorry that I cannot give more helpful information (the crashes are
totally different and the corefiles are mostly useless).
-----
Uwe Schindler
thetaphi@php.net - http://www.php.net
NSAPI SAPI developer
Bremen, Germany