Bug #74971 [Com]: (HY000/2002): Resource temporarily unavailable

From: Date: Sun, 23 Jul 2017 16:21:25 +0000
Subject: Bug #74971 [Com]: (HY000/2002): Resource temporarily unavailable
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-210243@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74971&edit=1

 ID:                 74971
 Comment by:         spam2 at rhsoft dot net
 Reported by:        spam2 at rhsoft dot net
 Summary:            (HY000/2002): Resource temporarily unavailable
 Status:             Open
 Type:               Bug
 Package:            MySQLi related
 Operating System:   Linux
 PHP Version:        7.0.21
 Block user comment: N
 Private report:     N

 New Comment:

see also https://jira.mariadb.org/browse/MDEV-13375

DUNNO on which side the problem exists but as long as a benchmarked CMS responds to additional
browser requests where the whole desktop also runs on said machine responds within 0.003 seconds
there is no good reason to talk about overloading and failed requests - and 250 concurrent requests
are not really much at all


Previous Comments:
------------------------------------------------------------------------
[2017-07-22 14:10:52] spam2 at rhsoft dot net

Description:
------------
mysqlnd/mysqli scales badly on unix-socket under load

that can only be rproduced on fast machines and with http-keep-alive because otherwise the
connection overhead mask the issue and which extremely optimized code 

but originally i have seen the issue on our production cms with exactly the benchmark below - the
reproducer just makes it easier beause it's even more lightweight than the core-cms code
__________________________________

my.cnf (MariaDB 10.2)

max_connections = 300
thread_handling = pool-of-threads
thread_pool_idle_timeout = 900
__________________________________

<?php declare(strict_types=1);
require __DIR__ . '/php/serverconf.inc.php';
$conn = mysqli_init();
mysqli_options($conn, MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
if(mysqli_real_connect($conn, 'localhost', $sql_user, $sql_pwd, $sql_db, 3600,
'', 0) === true)
{
 echo 'OK';
}
else
{
 echo 'FAILED';
}
__________________________________

ab -c 250 -n 1000000 -k http://corecms/connect-bench.php
__________________________________

[22-Jul-2017 15:57:49 Europe/Vienna] PHP Warning:  mysqli_real_connect() [<a href='http://at.php.net/manual/de/function.mysqli-real-connect.php'>function.mysqli-real-connect.php</a>]:
(HY000/2002): Resource temporarily unavailable in /mnt/data/www/corecms.rhsoft.net/connect-bench.php
on line 5
[22-Jul-2017 15:57:49 Europe/Vienna] PHP Warning:  mysqli_real_connect() [<a href='http://at.php.net/manual/de/function.mysqli-real-connect.php'>function.mysqli-real-connect.php</a>]:
(HY000/2002): Resource temporarily unavailable in /mnt/data/www/corecms.rhsoft.net/connect-bench.php
on line 5
[22-Jul-2017 15:57:50 Europe/Vienna] PHP Warning:  mysqli_real_connect() [<a href='http://at.php.net/manual/de/function.mysqli-real-connect.php'>function.mysqli-real-connect.php</a>]:
(HY000/2002): Resource temporarily unavailable in /mnt/data/www/corecms.rhsoft.net/connect-bench.php
on line 5
__________________________________

MariaDB guys state that this is a client issue (while that is likely true i don't believe in
timeouts given the 11696 requests/second)

Am 17.07.2017 um 15:02 schrieb Vladislav Vaintroub:
> You are getting HY000/2002, the range starting with 2000 (ending iirc 3000) is the error
> originating on client.  If I was to guess it is a client-side connection timeout




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



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


Thread (4 messages)

« previous php.bugs (#210243) next »