Bug #50866 [Fbk->NoF]: stream_socket_enable_crypto() hangs for unnegotiable SSL connections for socket
| From: | php-bugs at lists dot php dot net | Date: | Mon, 18 Feb 2013 00:34:06 +0000 |
| Subject: | Bug #50866 [Fbk->NoF]: stream_socket_enable_crypto() hangs for unnegotiable SSL connections for socket | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-176797@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=50866&edit=1
ID: 50866
Updated by: php-bugs@lists.php.net
Reported by: nj506 at zepler dot net
Summary: stream_socket_enable_crypto() hangs for unnegotiable
SSL connections for socket
-Status: Feedback
+Status: No Feedback
Type: Bug
Package: Streams related
Operating System: Linux
PHP Version: 5.3.1
New Comment:
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.
Previous Comments:
------------------------------------------------------------------------
[2010-04-25 20:24:45] felipe@php.net
Please try using this snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2010-02-05 01:00:00] 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".
------------------------------------------------------------------------
[2010-01-28 08:37:22] jani@php.net
Please try using this snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2010-01-27 22:14:18] nj506 at zepler dot net
Description:
------------
stream_socket_enable_crypto() hangs for unnegotiable SSL connections for sockets connected in
asynchronous mode.
Whilst I'm not greatly familiar with the PHP source, I believe it is caused by the following
line of code in xp_ssl.c:
timeout -= (tve.tv_sec + (float) tve.tv_usec / 1000000) - (tvs.tv_sec + (float) tvs.tv_usec /
1000000);
I'm often seeing no difference in tve.tv_sec and tvs.tv_sec, and the difference between
tve.tv_usec and tvs.tv_usec is typically 4/5 microseconds for the particular scenario I've been
debugging. 4/1000000 deduction from the timeout float results in essentially no change. Therefore
the code loops for a very long time. In anycase, a printf on the timeout float see's no change
after running for a good length of time.
Note: I don't believe this is the same issue as #45808, since this affects client connections,
not server connections [+ the area of code I believe to be guilty is specific to client connections]
I'd also note that stream_set_blocking appears to have no effect on this area of code - but
I'm not sure if thats a bug or not.
Reproduce code:
---------------
<?PHP
// The given address should not be connectable..
$socket = stream_socket_client("tcp://{$address}", $errno, $errstr, 15,
STREAM_CLIENT_CONNECT|STREAM_CLIENT_ASYNC_CONNECT);
var_dump(stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT));
?>
Expected result:
----------------
0/false [after "timeout" seconds]
Actual result:
--------------
Hangs pretty much forever.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=50866&edit=1