ID: 47629
Updated by: [email protected]
Reported By: danielc at analysisandsolutions dot com
-Status: Open
+Status: Bogus
Bug Type: MySQLi related
Operating System: Windows XP SP3
PHP Version: 5.3CVS-2009-03-12 (snap)
New Comment:
With:
max_execution_time: 2
default_socket_timeout: 6
It is the expected behavior to have a fatal error about the maximum
execution time being exceeded. max_execution_time has the highest
importance.
Previous Comments:
------------------------------------------------------------------------
[2009-03-12 04:41:21] danielc at analysisandsolutions dot com
Description:
------------
A fatal error is generated if a MySQLi connection attempt times out AND
the default_socket_timeout ini setting is greater that the
max_execution_time ini setting. This is happening in PHP 5.3, Mar 11
2009 17:04:24, VC6 thread safe snapshot build.
This does not happen on timeouts when using socket_bind().
This does not happen in PHP 5.2.9-1.
Reproduce code:
---------------
// BOGUS MYSQL PORT NUMBER IS INTENTIONAL.
echo 'PHP ' . phpversion() . "\n\n";
echo "ONE ---------------\n";
ini_set('max_execution_time', 6);
ini_set('default_socket_timeout', 2);
echo 'max_execution_time: ' . ini_get('max_execution_time') . "\n";
echo 'default_socket_timeout: ' . ini_get('default_socket_timeout') .
"\n";
$mysqli = new mysqli('localhost', 'does', 'not', 'matter', 1);
if ($mysqli->connect_error) {
echo "GOOD CATCH\n\n";
}
echo "TWO ---------------\n";
ini_set('max_execution_time', 2);
ini_set('default_socket_timeout', 6);
echo 'max_execution_time: ' . ini_get('max_execution_time') . "\n";
echo 'default_socket_timeout: ' . ini_get('default_socket_timeout') .
"\n";
$mysqli = new mysqli('localhost', 'does', 'not', 'matter', 1);
if ($mysqli->connect_error) {
echo "GOOD CATCH\n\n";
}
Expected result:
----------------
PHP 5.3.0beta2-dev
ONE ---------------
max_execution_time: 6
default_socket_timeout: 2
Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] A connection attempt
failed because the connected party did not (trying to connect via
tcp://localhost:1) in ...
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): A connection
attempt failed because the connected party did not properly respond
after a period of time, or established connection failed because
connected host has failed to respond. in ...
GOOD CATCH
TWO ---------------
max_execution_time: 2
default_socket_timeout: 6
Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] A connection attempt
failed because the connected party did not (trying to connect via
tcp://localhost:1) in ...
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): A connection
attempt failed because the connected party did not properly respond
after a period of time, or established connection failed because
connected host has failed to respond. in ...
GOOD CATCH
Actual result:
--------------
PHP 5.3.0beta2-dev
ONE ---------------
max_execution_time: 6
default_socket_timeout: 2
Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] A connection attempt
failed because the connected party did not (trying to connect via
tcp://localhost:1) in ...
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): A connection
attempt failed because the connected party did not properly respond
after a period of time, or established connection failed because
connected host has failed to respond. in ...
GOOD CATCH
TWO ---------------
max_execution_time: 2
default_socket_timeout: 6
Warning: mysqli::mysqli() [mysqli.mysqli]: [2002] A connection attempt
failed because the connected party did not (trying to connect via
tcp://localhost:1) in ...
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): A connection
attempt failed because the connected party did not properly respond
after a period of time, or established connection failed because
connected host has failed to respond. in ...
Fatal error: Maximum execution time of 2 seconds exceeded in ...
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=47629&edit=1