#41984 [Csd]: Detail on which files changed?

From: Date: Thu, 26 Jul 2007 16:59:38 +0000
Subject: #41984 [Csd]: Detail on which files changed?
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-115475@lists.php.net to get a copy of this message
 ID:               41984
 User updated by:  mr_walsh at yahoo dot com
-Summary:          Hangs on large SoapClient requests
 Reported By:      mr_walsh at yahoo dot com
 Status:           Closed
 Bug Type:         SOAP related
 Operating System: Linux and OSX
 PHP Version:      5.2.3
 Assigned To:      dmitry
 New Comment:

Hi Dimitry:  Is this checked into the 5.x tree, the 6.x tree, or both?

Any way you could tell me which file(s) got touched?  If it's minor I
can patch my version?

Thanks again for fixing this!


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

[2007-07-24 14:25:25] dmitry@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.



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

[2007-07-13 20:59:28] mr_walsh at yahoo dot com

Here's a way to reproduce it...I have a web service server running. 
Hit it with this code.  It hangs if you send ~68000 bytes or more
(though the limit seemed to be closer to 15000 on a Linux box)

<?
   class Test
   {  public $post;

      public function __construct()
      {  $this->post = str_repeat('a',68536);
      }
   }

   $client = new
SOAPClient("https://boxaroo.whateverittakes.com/BoxarooToPII.asmx?WSDL",
      array('trace' => 1,
         'soap_version' => SOAP_1_2)
      );

   $t = new Test();

   $resp = $client->Test($t);
   echo strlen($resp->TestResult);
?>

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

[2007-07-13 14:19:38] dmitry@php.net

I am not able to reproduce the problem on Linux.
Does the following script hangs for you?

<?php
  $client = new SoapClient(NULL,array(
    "location"=> "http://localhost:8080/",
    "uri"     => "test://"));
  echo $client->getQuote(str_repeat('a',65536));
?>


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

[2007-07-12 22:22:10] mr_walsh at yahoo dot com

The socket connection is stuck on 'CLOSE_WAIT'

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

[2007-07-12 22:00:59] mr_walsh at yahoo dot com

Description:
------------
Recently I added a field with a large string to an already stable SOAP
call.  This made the SoapClient call hang.  I was able in fact to see
from _getLastRequest that if the raw sent XML PHP generates is over
67979 bytes on Mac OSX or something like 11000 bytes on Linux the
problem happens every time.  

I ran in the debugger and it makes it nearly certain this is some sort
of socket interface problem.

This seems just like bug #29256 but I'm using the very latest php
5.2.3.

Is there some sort of socket configuration I can do as a workaround?

#1  0x004d3a31 in send () from /lib/tls/libpthread.so.0
#2  0x082796e3 in php_sockop_write (stream=0xb7ecc508, 
    buf=0xb73c9018
"szwOUrHRAXXwmeqiMzFOndm1nfunsjT+Hy63WxwOoCJ6Q0Ar9Py8rC8rwzRAttA/H/oqvzMywB46gqL6MzGQwmmE5HNLz02Gehchq6puU1pFZOX4LabnB6Jp1+XYfbGjKkAvYbNPBvM10oACKAGaoTGBBnGpk+IuWq4NDXdSgOHot51/K8NE1zdTuk6wWIAvnMI9B64Z"...,
count=7259) at /home/msw/php-5.2.3/main/streams/xp_socket.c:62
#3  0x08095448 in php_openssl_sockop_write (stream=0xb7ecc508, 
    buf=0xb73c9018
"szwOUrHRAXXwmeqiMzFOndm1nfunsjT+Hy63WxwOoCJ6Q0Ar9Py8rC8rwzRAttA/H/oqvzMywB46gqL6MzGQwmmE5HNLz02Gehchq6puU1pFZOX4LabnB6Jp1+XYfbGjKkAvYbNPBvM10oACKAGaoTGBBnGpk+IuWq4NDXdSgOHot51/K8NE1zdTuk6wWIAvnMI9B64Z"...,
count=7259) at /home/msw/php-5.2.3/ext/openssl/xp_ssl.c:203
#4  0x08271491 in _php_stream_write_buffer (stream=0xb7ecc508, 
    buf=0xb73c9018
"szwOUrHRAXXwmeqiMzFOndm1nfunsjT+Hy63WxwOoCJ6Q0Ar9Py8rC8rwzRAttA/H/oqvzMywB46gqL6MzGQwmmE5HNLz02Gehchq6puU1pFZOX4LabnB6Jp1+XYfbGjKkAvYbNPBvM10oACKAGaoTGBBnGpk+IuWq4NDXdSgOHot51/K8NE1zdTuk6wWIAvnMI9B64Z"...,
count=7259) at /home/msw/php-5.2.3/main/streams/streams.c:912
#5  0x081988f4 in make_http_soap_request (this_ptr=0xb7b1fb90, 
    buf=0x8b194b8 "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n<SOAP-ENV:Envelope
xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:ns1=\"https://boxaroo.whateverittakes.com\"><SOAP-ENV:Body><ns1:BoxRequestOrder"...,
buf_size=15193, location=0xb7b5f9d4 "http://blah.com/blah.asmx", 
    soapaction=0xb7ab38bc "https://blah.com/SubmitRequest",
soap_version=1, 
    buffer=0xb7b5f49c, buffer_len=0xb7b5f4a0) at
/home/msw/php-5.2.3/ext/soap/php_http.c:683
#6  0x08184902 in zim_SoapClient___doRequest (ht=5,
return_value=0xb7b5f49c, return_value_ptr=0x0, 
    this_ptr=0xb7b1fb90, return_value_used=1) at
/home/msw/php-5.2.3/ext/soap/soap.c:2993
#7  0x0828ee1a in zend_call_function (fci=0xbff12940, fci_cache=0x0)
    at /home/msw/php-5.2.3/Zend/zend_execute_API.c:989
#8  0x0828f5f0 in call_user_function_ex (function_table=0x1908,
object_pp=0x1908, function_name=0x1908, 
    retval_ptr_ptr=0x1908, param_count=6408, params=0x1908,
no_separation=6408, symbol_table=0x1908)
    at /home/msw/php-5.2.3/Zend/zend_execute_API.c:602
#9  0x0828f62c in call_user_function (function_table=0x0,
object_pp=0xbff129f0, function_name=0xbff12a70, 
    retval_ptr=0xbff12be0, param_count=5, params=0xbff12a00)
    at /home/msw/php-5.2.3/Zend/zend_execute_API.c:575
#10 0x08185244 in do_request (this_ptr=Variable "this_ptr" is not
available.
) at /home/msw/php-5.2.3/ext/soap/soap.c:2457
#11 0x0818aee1 in do_soap_call (this_ptr=0xb7b1fb90,
function=0xb7b229f4 "SubmitRequest", 
    function_len=21, arg_count=1, real_args=0xb7ab36d8,
return_value=0xb764fd84, 
    location=0xb7b5f9d4 "http://blah.com/blah.asmx", soap_action=0x0, 
    call_uri=0x0, soap_headers=0x0, output_headers=0x0) at
/home/msw/php-5.2.3/ext/soap/soap.c:2600



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


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


Thread (8 messages)

« previous php.bugs (#115475) next »