#37083 [Asn->Csd]: Frequent crashs in SOAP extension with new WSDL caching code in multithread WS

From: Date: Tue, 18 Apr 2006 13:08:46 +0000
Subject: #37083 [Asn->Csd]: Frequent crashs in SOAP extension with new WSDL caching code in multithread WS
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-95931@lists.php.net to get a copy of this message
 ID:               37083
 Updated by:       dmitry@php.net
 Reported By:      thetaphi@php.net
-Status:           Assigned
+Status:           Closed
 Bug Type:         SOAP related
 Operating System: *
 PHP Version:      5CVS-2006-04-14 (snap)
 Assigned To:      andrei
 New Comment:

Fixed in CVS HEAD and PHP_5_1.


Previous Comments:
------------------------------------------------------------------------

[2006-04-16 00:26:21] thetaphi@php.net

And when returning an empty Apache Map (see wsdl) in the AXIS code it
does not crash anymore. With all that the problem seems to be the
decoding of the Apache Map entries of type xsd:anyType values from the
SOAP response to PHP datatypes.

------------------------------------------------------------------------

[2006-04-16 00:09:46] thetaphi@php.net

From the logs on the AXIS side of the server I can see that the crash
now occurs on the decoding side (parsing the response from AXIS). Hope
that helps...

------------------------------------------------------------------------

[2006-04-15 21:50:44] thetaphi@php.net

And xsd:anyType is mapped to xml without encoding... Could this be the
problem now?

------------------------------------------------------------------------

[2006-04-15 20:46:55] tony2001@php.net

Andrei, also take a look at these lines in php_encoding.c:

line 358
        if (encode == NULL) {
            encode = get_conversion(UNKNOWN_TYPE);
        }
        if (encode->to_xml_before) {
            data = encode->to_xml_before(&encode->details, data);
        }
line 365
The get_conversion() may return NULL, but you're using encode without
checking it for NULL. 
From what I can see, the backtrace points exactly to this problem:

Program received signal SIGSEGV, Segmentation fault.
master_to_xml (encode=0x424b60, data=0x43fc28, style=1,
parent=0x429740)
at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:363
363                             data =
encode->to_xml_before(&encode->details, data);

------------------------------------------------------------------------

[2006-04-15 16:40:42] thetaphi@php.net

From the webserver log i can see that the crash occurs always in
function "get_conversion()" (SIGSEGV or SIGBUS):
CORE3262: Crash occurred in function get_conversion from module
/pangaea/webserver61/bin/libphp5.so

Funny is the follwing:
CORE3262: Crash occurred in function free from module
/usr/lib/libmtmalloc.so.1 

When server dies with SIGILL (which is mostly the case)nothing is said
about the location.

------------------------------------------------------------------------

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/37083

-- 
Edit this bug report at http://bugs.php.net/?id=37083&edit=1


Thread (19 messages)

« previous php.bugs (#95931) next »