php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #74971 (HY000/2002): Resource temporarily unavailable
Submitted: 2017-07-22 14:10 UTC Modified: -
From: spam2 at rhsoft dot net Assigned:
Status: Open Package: MySQLi related
PHP Version: 7.0.21 OS: Linux
Private report: No CVE-ID:
Have you experienced this issue?
Rate the importance of this bug to you:

 [2017-07-22 14:10 UTC] 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



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-07-23 16:21 UTC] spam2 at rhsoft dot net
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
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Tue Aug 29 15:01:52 2017 UTC