From: jan at pinna dot nl
Operating system: Windows Server 2003
PHP version: 5.1.4
PHP Bug Type: SOAP related
Bug description: _very_ long processing time before sending SOAP request with
large data
Description:
------------
I try to access a webservice over SSL which goes great.
The other party 'abused' the webservice to retrieve data from me, which I
'set' as a parameter.
This is a 'large' amount of data: 4,5MB.
I can't get this done. It seems that there is a large timing problem with
it because I get CGI timeouts, NAT firewall timeouts, etc.
I tried, with 110K data the processing time before sending the data is
3minutes. With the whole file, it's _way_ more.
But I think the problem seems that the socket is already opening a port.
Then, after a long period, she wants to send data thru it.
There it goes wrong (I think because of a linking/timing problem with NAT,
if it takes so long before data send/receive over the line which was opened
before).
I think this, because when I turn off NAT, it works.
Where I first got incomplete headers, forced broken SSL connections, w/o
NAT he really starts, after alot of minutes, sending the data.
I think PHP should send its data quicker.
If you want, I can send you the file I try to send.
Reproduce code:
---------------
<?
$opts = array(
'ssl' => array(
'local_cert' => 'keys.pem',
'passphrase' => 'abcdefg',
'allow_self_signed' => true
)
);
$ctx = stream_context_create($opts);
$options = array(
'stream_context' => $ctx,
"trace" => 1,
"exceptions" => 1,
"location"=>
'https://xxx.xxx.yyy.zzz/InterbankIncaBTWebService/IncassoRelatieWebservice',
'local_cert' => 'keys.pem',
'passphrase' => 'abcdefg');
$client = new SoapClient('wsdl/IncassoRelatieServiceService.wsdl',
$options);
try
{
$filename = "__INPUT/1000188815-8-0-000000012-20060524.xml";
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
print
utf8_decode($client->setPortefeuilleoverzichten('1000188815',$contents));
}
catch(SoapFault $exception)
{
$msg = $exception->__toString();
print_r($msg);
}
?>
Expected result:
----------------
Some OK text which I normally receive from the WS.
Actual result:
--------------
CGI timeout, after I turn up all the timeouts there are I got broken
connections reported, "read timed out" errors from the server side, load
of 100% for php in windows, etc.
--
Edit bug report at http://bugs.php.net/?id=37827&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=37827&r=trysnapshot44
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=37827&r=trysnapshot52
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=37827&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=37827&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=37827&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=37827&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=37827&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=37827&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=37827&r=support
Expected behavior: http://bugs.php.net/fix.php?id=37827&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=37827&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=37827&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=37827&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=37827&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=37827&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=37827&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=37827&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=37827&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=37827&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=37827&r=mysqlcfg