Edit report at http://bugs.php.net/bug.php?id=48610&edit=1
ID: 48610
Comment by: arkadi at hosting dot lv
Reported by: arkadi at hosting dot lv
Summary: Accessing ssl:// results in immediate "SSL: connection
timeout" error
Status: Bogus
Type: Bug
Package: Streams related
Operating System: Linux
PHP Version: 5.2.10
New Comment:
The solution for me was to remove -fpmath=sse flag (32-bit build).
Previous Comments:
------------------------------------------------------------------------
[2010-03-12 00:06:16] ben at sixg dot com
We're seeing this with PHP 5.2.12 on Red Hat 5.4. (It's a Rackspace
build of PHP
rather than a Red Hat build, but I'd expect that it was built with RH5's
gcc, so
probably RH's gcc-4.1.2-46 or so.)
This is not bogus. Even if it's a GCC bug, if it's present in GCC 4.3,
it's not
likely to be fixed any time soon on that side. Can't PHP work around
it?
Arkadi, did you end up patching your xp_ssl.c to work around this, or
did you find
a version of GCC that doesn't have the bug?
------------------------------------------------------------------------
[2009-06-25 20:43:02] arkadi at hosting dot lv
It is a GCC -fpmath=sse bug (i486-linux-gnu 4.3.2 [Debian 4.3.2-1.1)]
that miscompiles
timeout -= (tve.tv_sec + (float) tve.tv_usec / 1000000) -
(tvs.tv_sec+ (float) tvs.tv_usec / 1000000);
from xp_ssl.c.
------------------------------------------------------------------------
[2009-06-19 18:38:37] arkadi at hosting dot lv
Description:
------------
The problem was already reported in bug #47791 but the bug was closed as
Bogus. This is also probably related to bug #45016.
When trying to establish SSL connection the "SSL: connection timeout"
error is raised _immediately_ regardless of timeout specified.
You can try to access the script running on PHP 4.4.9
http://iron.hosting.lv/ssl.php - that produces correct result - an XML
fragment
and PHP 5.2.10
http://iron-php5.hosting.lv/ssl.php
which immediately prints (0).
Stracing the process shows that connection is established and initial
SSL negotiation packet is sent, but then it waits less than a second for
the reply (which is not arriving in such short time), then connection is
closed.
I believe the problem appeared after 5.2.6, and definitely present in
5.2.9.
Reproduce code:
---------------
<?php
$fp = fsockopen("ssl://polise.if.lv" , 443, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /PartnerWS/OCTA/PArtner/PremiumCalculator.asmx?WSDL
HTTP/1.1\r\n";
$out .= "Host: polise.if.lv\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
Expected result:
----------------
XML fragment fetched from remote server
Actual result:
--------------
(0)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=48610&edit=1