#44686 [Com]: SOAP-ERROR: Parsing WSDL
ID: 44686 Comment by: simon at connexon dot com Reported By: dmittner at llnw dot com Status: No Feedback Bug Type: SOAP related Operating System: Gentoo PHP Version: 5.2.5 New Comment: Hi, I'm having the same problem... And it's a bit tough for me to troubleshoot because I'm using a file package provided by a website. http://www.nena.org/xml_schemas/NENAFiles/CurrentNENA/CurrentNENA.zip I'm trying to get the validateAddress to work (from the v7 interface) but so far no luck! I'm stuck on this undefined ref variable. Previous Comments: [2008-12-01 18:12:56] sergio dot aghemo at fiat dot com having the same problem. Urgent fix needed! follow extract of the WSDL . [2008-11-30 18:22:10] olivier at quatrain dot com Having the same problem happening with a valid WSDL on php 5.2.5 and 5.2.6, I tested it on the latest snapshot of PHP (5.2.7RC6) and got the same error. Hope it helps. [2008-10-29 01:00:02] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". [2008-10-21 11:27:41] j...@php.net Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ [2008-04-14 22:42:28] dmittner at llnw dot com I've narrowed it down, I think. Relevant excerpts from the WSDL: ... ... No "name" is specified in the upper block of XML, for the line with the "ref=". If I specify a name the WSDL parses. I believe the correct behavior would be for PHP to acquire the name from the complexType declaration. I don't know if this should always be the case for references, or only when no name is provided - if providing a name is even valid for them. This is just a guess, though. I've dealt very little with references so do not know the standards surrounding them; only what digging into the XML has revealed. 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/44686 -- Edit this bug report at http://bugs.php.net/?id=44686&edit=1
#47119 [NEW]: SOAP-ERROR: Parsing WSDL
From: simon at connexon dot com Operating system: Windows XP PHP version: 5.2.8 PHP Bug Type: SOAP related Bug description: SOAP-ERROR: Parsing WSDL Description: A bug was already opened on this but has been set to "No feedback" and the person who opened the bug doesn't seem to be wanting to reopen it. This bug addresses a problem in the XML parser part of the soapclient and soapserver constructors. I've been using this for a few years now and it's always been working fine, but this time I was using a pre-made .wsdl with a ton of .xsd files for a project and the soap was always returning me this precise error "Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: unresolved element 'ref' attribute." This needs to be fixed. package can be downloaded at http://www.nena.org/xml_schemas/NENAFiles/CurrentNENA/CurrentNENA.zip The crash occurs somewhere in this part: (if i remove this from the .xsd file then it works fine + the original file doesn't display any errors in a normal XML application) A provider of either service or information. The target provider type only specifies that a provider be identified by host address or NENA identifier. This type should be used by requesting hosts when identifying the target host for the request. This type is used to identify the VPC in the ESR request and the ESCT messages where the full details for the VPC are not known. Reproduce code: --- soap client code: $args = array ( 'trace' => 1, 'exceptions' => 1, 'location' => 'http://localhost/proj/server.php' ); $clientSOAP = new SoapClient('CurrentNENA/I2/v7/v7.wsdl', $args); $params= array ( "validateAddress" => array( "MessageID" => "Blob", "CustomerID" => "1992", "StreetAddress" => array( "HouseNum" => "200", "HouseNumSuffix" => "200", "PrefixDirectional" => "200", "StreetName" => "200", "StreetSuffix" => "200", "PostDirectional" => "200", "MSAGCommunity" => "200", "StateProvince" => "200", "PostalCode" => "200", "Country" => "200" ) )); $myres = $clientSOAP->__soapCall("validateAddress", $params); soap server code: $serveurSOAP = new SoapServer('CurrentNENA/I2/v7/v7.wsdl'); $serveurSOAP->addFunction(array("validateAddress")); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $serveurSOAP->handle(); } else { echo 'Please use the POST method.'; } function validateAddress($params) { return array("MessageID" => "Blob", "ReturnCode" => "200", "Valid" => "Valid"); } Expected result: should give a normal xml response RESPONSE: http://schemas.xmlsoap.org/soap/envelope/"; xmlns:ns1="urn:nena:xml:ns:es:v7">Blob200Valid Actual result: -- Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: unresolved element 'ref' attribute. -- Edit bug report at http://bugs.php.net/?id=47119&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=47119&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=47119&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=47119&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=47119&r=fixedcvs Fixed in CVS and need be documented: http://bugs.php.net/fix.php?id=47119&r=needdocs Fixed in release:
#41943 [NEW]: Soap Call causes CPU to go 100%
From: simon at connexon dot com Operating system: Windows Server 2003 PHP version: 5.2.3 PHP Bug Type: Performance problem Bug description: Soap Call causes CPU to go 100% Description: We've been using soap for a while now and noticed that when we send a soap request and it waits for a response, PHP goes in a sort of loop and takes CPU load. Our average waiting time is 4 seconds. A soap call once in a while is ok, because it doesn't take too much CPU overall. But we noticed that the more we grow, the more CPU it takes, to a point where we reach often 100% CPU if we do a loop of soap calls. (All that caused by the waiting time of the soap call!!!). Reproduce code: --- x Expected result: Would it be possible that PHP goes into an idle mode when it waits for a soap response instead of taking all the CPU ressources? Actual result: -- CPU goes crazy when we do too many soap calls in a row (we can do maximum of 4 soap calls at once, else it would overload the server). -- Edit bug report at http://bugs.php.net/?id=41943&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=41943&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=41943&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=41943&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=41943&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=41943&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=41943&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=41943&r=needscript Try newer version:http://bugs.php.net/fix.php?id=41943&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=41943&r=support Expected behavior:http://bugs.php.net/fix.php?id=41943&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=41943&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=41943&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=41943&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=41943&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=41943&r=dst IIS Stability:http://bugs.php.net/fix.php?id=41943&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=41943&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=41943&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=41943&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=41943&r=mysqlcfg
#41943 [Fbk->Opn]: Soap Call causes CPU to go 100%
ID: 41943 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Feedback +Status: Open Bug Type: Performance problem Operating System: Windows Server 2003 PHP Version: 5.2.3 New Comment: "aaa"); $this->result = $this->handle->__soapCall("ValA", $ws_params); if ($debug) $this->displayMessageInfo(); $this->handleFault($this->result); ?> When the code gets to "$this->handle->__soapCall..." we recognize the fact that when PHP is waiting for a soap response the CPU is blocked. However this is not a good behavior as of we need the CPU to do other things also. Previous Comments: [2007-07-09 19:45:35] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with , is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ---------------- [2007-07-09 19:39:46] simon at connexon dot com Description: We've been using soap for a while now and noticed that when we send a soap request and it waits for a response, PHP goes in a sort of loop and takes CPU load. Our average waiting time is 4 seconds. A soap call once in a while is ok, because it doesn't take too much CPU overall. But we noticed that the more we grow, the more CPU it takes, to a point where we reach often 100% CPU if we do a loop of soap calls. (All that caused by the waiting time of the soap call!!!). Reproduce code: --- x Expected result: Would it be possible that PHP goes into an idle mode when it waits for a soap response instead of taking all the CPU ressources? Actual result: -- CPU goes crazy when we do too many soap calls in a row (we can do maximum of 4 soap calls at once, else it would overload the server). -- Edit this bug report at http://bugs.php.net/?id=41943&edit=1
#41943 [Fbk->Opn]: Soap Call causes CPU to go 100%
ID: 41943 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Windows Server 2003 PHP Version: 5.2.3 Assigned To: dmitry New Comment: How do we do traces? however I was able to isolate the problem. It's SSL that is causing CPU spikes. I ran a soap location with HTTP://, then the CPU would "idle" while it's waiting for a response, however using HTTPS:// the CPU really goes nuts! Is this a problem in the core of PHP itself? Previous Comments: [2007-07-11 07:08:46] [EMAIL PROTECTED] Could you plese post strace of process or/and call-trace of PHP during it eats CPU. [2007-07-09 20:13:37] simon at connexon dot com "aaa"); $this->result = $this->handle->__soapCall("ValA", $ws_params); if ($debug) $this->displayMessageInfo(); $this->handleFault($this->result); ?> When the code gets to "$this->handle->__soapCall..." we recognize the fact that when PHP is waiting for a soap response the CPU is blocked. However this is not a good behavior as of we need the CPU to do other things also. [2007-07-09 19:45:35] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with , is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ---------------- [2007-07-09 19:39:46] simon at connexon dot com Description: We've been using soap for a while now and noticed that when we send a soap request and it waits for a response, PHP goes in a sort of loop and takes CPU load. Our average waiting time is 4 seconds. A soap call once in a while is ok, because it doesn't take too much CPU overall. But we noticed that the more we grow, the more CPU it takes, to a point where we reach often 100% CPU if we do a loop of soap calls. (All that caused by the waiting time of the soap call!!!). Reproduce code: --- x Expected result: Would it be possible that PHP goes into an idle mode when it waits for a soap response instead of taking all the CPU ressources? Actual result: -- CPU goes crazy when we do too many soap calls in a row (we can do maximum of 4 soap calls at once, else it would overload the server). -- Edit this bug report at http://bugs.php.net/?id=41943&edit=1
#41943 [Fbk->Opn]: Soap Call causes CPU to go 100%
ID: 41943 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Windows Server 2003 PHP Version: 5.2.3 Assigned To: dmitry New Comment: Hi dmitry, were you using apache or IIS under windows? We are using IIS. Perhaps it is the source of the problem... I will be doing more testing on this later this week. Please let me know. Thank you. Previous Comments: [2007-07-25 06:25:38] [EMAIL PROTECTED] I am not able to reproduce this. I created a simple client that accesses server over HTTPS: "https://tpl/~dmitry/soap/examples/server4.php";, "uri" => "test://")); echo $client->getQuote("ibm"); ?> and server that sleeps for 15 seconds: 98.42 ); function getQuote($symbol) { global $quotes; sleep(15); return $quotes[$symbol]; } //ob_start("ob_gzhandler"); $server = new SoapServer("stockquote1.wsdl"); $server->addFunction("getQuote"); $server->handle(); ?> and I don't see any CPU load: [EMAIL PROTECTED] CGI-DEBUG]$ time sapi/cli/php /home/dmitry/public_html/soap/examples/client8.php 98.42 real0m15.105s user0m0.006s sys 0m0.033s I also run the same client on Windows looking into "perfmon" and CPU load was about 0% during waiting. Please provide a COMPLETE reproducable case (client that access external SOAP server, or local client and srver), if you like me to fix the behavior. ------------ [2007-07-13 12:35:25] simon at connexon dot com How do we do traces? however I was able to isolate the problem. It's SSL that is causing CPU spikes. I ran a soap location with HTTP://, then the CPU would "idle" while it's waiting for a response, however using HTTPS:// the CPU really goes nuts! Is this a problem in the core of PHP itself? [2007-07-11 07:08:46] [EMAIL PROTECTED] Could you plese post strace of process or/and call-trace of PHP during it eats CPU. [2007-07-09 20:13:37] simon at connexon dot com "aaa"); $this->result = $this->handle->__soapCall("ValA", $ws_params); if ($debug) $this->displayMessageInfo(); $this->handleFault($this->result); ?> When the code gets to "$this->handle->__soapCall..." we recognize the fact that when PHP is waiting for a soap response the CPU is blocked. However this is not a good behavior as of we need the CPU to do other things also. [2007-07-09 19:45:35] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with , is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. 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/41943 -- Edit this bug report at http://bugs.php.net/?id=41943&edit=1
#40884 [NEW]: Cannot specify port range in pasv mode
From: simon at connexon dot com Operating system: Windows Server 2003 PHP version: 5.2.1 PHP Bug Type: FTP related Bug description: Cannot specify port range in pasv mode Description: Ok, I searched everywhere for this but could not find anything... And I think it should be there. When using pasv_mode for a ftp connection, we should allowed to specify the port range that the passive mode will be using. In our case, the place where we need to upload some files accept only pasv connections with ASCII data, and a range of ports between 49000 and 5. So ftp_connect does connect to port 21, however there is no way to specify that the pasv_mode will be using a range of ports. So the changes of it using a port in the range is quite slim! Any ideas? Reproduce code: --- $conn_id = ftp_connect(_FTP_SERVER_, 21, 15) or die("Could not connect to FTP"); ftp_pasv($conn_id, true); $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_ASCII) or die("Could not upload the desired file."); Expected result: The file being uploaded Actual result: -- Well since it's not using a valid port, it fails. But I guess it's normal since we can't specify a port range! Can this be integrated in PHP? -- Edit bug report at http://bugs.php.net/?id=40884&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=40884&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=40884&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=40884&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=40884&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=40884&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=40884&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=40884&r=needscript Try newer version:http://bugs.php.net/fix.php?id=40884&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=40884&r=support Expected behavior:http://bugs.php.net/fix.php?id=40884&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=40884&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=40884&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=40884&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=40884&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=40884&r=dst IIS Stability:http://bugs.php.net/fix.php?id=40884&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=40884&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=40884&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=40884&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=40884&r=mysqlcfg
#41356 [NEW]: Cannot retrieve global from a class in a soap server
From: simon at connexon dot com Operating system: Windows PHP version: 5.2.2 PHP Bug Type: SOAP related Bug description: Cannot retrieve global from a class in a soap server Description: For our application we use a $db which represents the database connection object. In the class, instead of creating a new object every time, we do : global $db, which retrieves the database connection from outside the class. That works good! However, when we call that class from a soap server, for some reason it does not get the $db variable (its blank)... Reproduce code: --- // Code $db = new MySQL(); // class class X extends A { public function __construct($params) { global $db; $this->db = $db; $this->init($params); } Expected result: that the global $db; in the constructor contains the db connection Actual result: -- blank variable -- Edit bug report at http://bugs.php.net/?id=41356&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=41356&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=41356&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=41356&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=41356&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=41356&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=41356&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=41356&r=needscript Try newer version:http://bugs.php.net/fix.php?id=41356&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=41356&r=support Expected behavior:http://bugs.php.net/fix.php?id=41356&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=41356&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=41356&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=41356&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=41356&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=41356&r=dst IIS Stability:http://bugs.php.net/fix.php?id=41356&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=41356&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=41356&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=41356&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=41356&r=mysqlcfg
#41356 [Opn->Csd]: Cannot retrieve global from a class in a soap server
ID: 41356 User updated by: simon at connexon dot com Reported By: simon at connexon dot com -Status: Open +Status: Closed Bug Type: SOAP related Operating System: Windows PHP Version: 5.2.2 New Comment: using $GLOBALS instead of global seems to fix the problem Previous Comments: [2007-05-10 17:18:22] simon at connexon dot com Description: For our application we use a $db which represents the database connection object. In the class, instead of creating a new object every time, we do : global $db, which retrieves the database connection from outside the class. That works good! However, when we call that class from a soap server, for some reason it does not get the $db variable (its blank)... Reproduce code: --- // Code $db = new MySQL(); // class class X extends A { public function __construct($params) { global $db; $this->db = $db; $this->init($params); } Expected result: that the global $db; in the constructor contains the db connection Actual result: -- blank variable -- Edit this bug report at http://bugs.php.net/?id=41356&edit=1