PHP 4.0 Bug #7634: mysql_pconnect() + lock tables can hang server
| From: | torben@php.net | Date: | Sat, 04 Nov 2000 02:08:25 +0000 |
| Subject: | PHP 4.0 Bug #7634: mysql_pconnect() + lock tables can hang server | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-37096@lists.php.net to get a copy of this message | ||
From: torben@php.net
Operating system: Mandrake 7.0
PHP version: 4.0 Latest CVS (03/11/2000)
PHP Bug Type: MySQL related
Bug description: mysql_pconnect() + lock tables can hang server
I've heard about this from a couple of sources and been
looking for answers, but haven't found anything
definitive. I don't even know if it's solvable. However,
when using persistent connections and LOCK TABLES, if
for any reason the UNLOCK TABLES never gets executed,
the server ends up hanging while it waits for the lock
to get released.
This is reproduceable for me on every version of PHP I've
tried. Example script:
<?php /* -*- mode: c++; minor-mode: font -*- */
error_reporting(E_ALL);
$dbh = mysql_pconnect($host, $user, $pass);
/* Just to test the connection. */
if ($res = mysql_db_query($db, 'show tables', $dbh)) {
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
echo $row["Tables_in_$db"] . "<br>\n";
}
}
echo "<hr>\n";
$table = 'category';
echo "Locking table '$table' (if the script blocks here, then the lock never got
released)...<br>\n";
flush();
if ($res = mysql_db_query('chaps', "lock tables $table write", $dbh)) {
echo "OK; locked.<br>\n";
} else {
echo "failed; could not lock.<br>\n";
}
flush();
//$res = mysql_db_query('chaps', "unlock tables", $dbh)
?>
Is this just me?
--
Edit Bug report at: http://bugs.php.net/?id=7634&edit=1