|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2009-06-20 13:19 UTC] pajoye@php.net
[2009-06-20 17:34 UTC] danielc@php.net
[2009-06-20 20:12 UTC] pajoye@php.net
[2009-06-21 00:48 UTC] danielc at analysisandsolutions dot com
[2009-06-21 09:04 UTC] pajoye@php.net
[2009-06-22 15:58 UTC] danielc at analysisandsolutions dot com
[2009-09-17 11:40 UTC] uw@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Dec 04 13:00:01 2025 UTC |
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 ...