From: andrew at is dot co dot za Operating system: Fedora Core release 6 PHP version: 5.2.5 PHP Bug Type: SOAP related Bug description: Using 'soapenc:array' instead of 'soapenc:Array' in WSDL doc causes timeout
Description: ------------ The server.php script shown below fails with a 'PHP Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/server.php on line 9' when executed with the supplied soaptest.wsdl file. However, if you edit soaptest.wsdl and replace 'soapenc:array' with 'soapenc:Array' (i.e., change the lower case 'a' to an upper case 'A'), then the script executes correctly. The first case should at least return an error, rather than seemingly causing the server to enter an infinite loop. Reproduce code: --------------- server.php: <?php class SOAPTest { public function GetArray() { return array('one', 'two', 'three'); } } $server = new SoapServer(dirname(__FILE__) . '/soaptest.wsdl'); $server->setClass('SOAPTest'); $server->handle(); ?> client.php: <?php $client = new SoapClient(dirname(__FILE__) . '/soaptest.wsdl', array('exceptions' => false)); header('Content-Type: text/plain'); $ret = $client->GetArray(); if (is_soap_fault($ret)) echo "SOAP Fault: " . $ret->faultstring; else var_dump($ret); ?> soaptest.wsdl: <?xml version="1.0"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:SOAPTest" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="urn:SOAPTest"> <types> <xsd:schema targetNamespace="urn:SOAPTest"> <xsd:complexType name="ArrayOfString"> <xsd:complexContent> <xsd:restriction base="soapenc:array"> <xsd:attribute ref="soapenc:arrayType" arrayType="xsd:string[]"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:schema> </types> <message name="GetArrayInput"/> <message name="GetArrayOutput"> <part name="return" type="tns:ArrayOfString"/> </message> <portType name="SOAPTestPortType"> <operation name="GetArray"> <input message="tns:GetArrayInput"/> <output message="tns:GetArrayOutput"/> </operation> </portType> <binding name="SOAPTestBinding" type="tns:SOAPTestPortType"> <soap:binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="GetArray"> <input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/"> <soap:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SOAPTest"/> </input> <output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/"> <soap:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SOAPTest"/> </output> </operation> </binding> <service name="SOAPTestService"> <port xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="SOAPTestPort" binding="tns:SOAPTestBinding"> <soap:address xmlns="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost/server.php"/> </port> </service> </definitions> Expected result: ---------------- array(3) { [0]=> string(3) "one" [1]=> string(3) "two" [2]=> string(5) "three" } Actual result: -------------- SOAP Fault: Maximum execution time of 30 seconds exceeded -- Edit bug report at http://bugs.php.net/?id=43464&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=43464&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=43464&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=43464&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=43464&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=43464&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=43464&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=43464&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=43464&r=needscript Try newer version: http://bugs.php.net/fix.php?id=43464&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=43464&r=support Expected behavior: http://bugs.php.net/fix.php?id=43464&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=43464&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=43464&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=43464&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=43464&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=43464&r=dst IIS Stability: http://bugs.php.net/fix.php?id=43464&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=43464&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=43464&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=43464&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=43464&r=mysqlcfg