Bug #72372 [Opn->Csd]: Blocking TCP socket connection does not timeout
| From: | gohanman at gmail dot com | Date: | Tue, 27 Sep 2016 15:15:07 +0000 |
| Subject: | Bug #72372 [Opn->Csd]: Blocking TCP socket connection does not timeout | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-204303@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=72372&edit=1
ID: 72372
User updated by: gohanman at gmail dot com
Reported by: gohanman at gmail dot com
-Summary: Eventual connectivity error
+Summary: Blocking TCP socket connection does not timeout
-Status: Open
+Status: Closed
Type: Bug
-Package: MySQLi related
+Package: Sockets related
Operating System: Windows 10
-PHP Version: 7.0.7
+PHP Version: 7.0.1
Block user comment: N
Private report: N
New Comment:
Follow-up: I just observed the same issue on a different but ideally spec'd machine running PHP
5.6.x. Otherwise the environment is identical so this must not be a 5.6 => 7.0 related problem.
Previous Comments:
------------------------------------------------------------------------
[2016-06-09 19:38:25] gohanman at gmail dot com
Description:
------------
I don't have any kind of simple repro for this, unfortunately. I'm trying to upgrade an
app from 5.6 to 7.0. The app works fine in 7.0 for some period of time and then every single mysqli
connection attempt starts failing with this error:
Warning: mysqli::mysqli(): (HY000/2002): An operation on a socket could not be performed because the
system lacked sufficient buffer space or because a queue was full.
As far as I can tell this is the result of the OS itself running out of memory for TCP buffers
(https://blogs.msdn.microsoft.com/sql_protocols/2009/03/09/understanding-the-error-an-operation-on-a-socket-could-not-be-performed-because-the-system-lacked-sufficient-buffer-space-or-because-a-queue-was-full/).
I'm not using either of the ini switches mention in the Microsoft article. This problem does
not occur using 5.6 with the same app on the same system.
I'm seeing this issue with exactly one client browser executing PHP scripts via HTTP requests.
Closing the client browser and waiting for several minutes does not seem to release any resources.
Once the error occurs it continues to occur on every connection attempt until Apache is restarted.
I'm using the 32bit, thread-safe 7.0.7 build from windows.php.net with 32-bit apache 2.4.20
binaries from Apache Lounge.
Besides mysqli, I'm enabling php_opcache as well as these extensions: curl, gettext, intl,
mbstring, openssl, sockets, xsl.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=72372&edit=1