Re: Bug #7634 Updated: mysql_pconnect() + lock tables can hang server
| From: | Lars Torben Wilson | Date: | Wed, 21 Nov 2001 01:19:17 +0000 |
| Subject: | Re: Bug #7634 Updated: mysql_pconnect() + lock tables can hang server | ||
| References: | 1 2 3 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-71155@lists.php.net to get a copy of this message | ||
Markus Fischer writes:
> Does this change if you explicetly close the connection?
Nope. :)
Actually, I had almost forgotten about this problem, but I guess it's
still relevant since I do have places where I use table locking, and
if the script were to bail there (which it never has in almost 3
years, but it still *could*, I guess...) it'd require a server reset
(or mysql thread kill) to cope with.
> On Wed, Nov 21, 2001 at 01:10:51AM -0000, torben@php.net wrote :
> > ID: 7634
> > Updated by: torben
> > Reported By: torben@php.net
> > Old Status: Feedback
> > Status: Open
> > Bug Type: MySQL related
> > Operating System: Mandrake 7.0
> > PHP Version: 4.0 Latest CVS (03/11/2000)
> > New Comment:
> >
> > Nope, still happens. This is on Debian woody, PHP 4.1.0RC3
> > (haven't tried on the win32 version you posted a link to,
> > but whatever).
> >
> > Same script.
> >
> >
> > Previous Comments:
> > ------------------------------------------------------------------------
> >
> > [2001-11-20 19:46:00] mfischer@php.net
> >
> > Can you try latest RC and see if the problem persists
> >
> > http://phpuk.org/~james/php-4.1.0RC3-win32.zip
> >
> > Feedback.
> >
> > ------------------------------------------------------------------------
> >
> > [2000-11-03 21:08:24] torben@php.net
> >
> > 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 this bug report at
> > http://bugs.php.net/?id=7634&edit=1
> >
> >
> > --
> > PHP Development Mailing List <http://www.php.net/>
> > To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
> > For additional commands, e-mail: php-dev-help@lists.php.net
> > To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
> --
> Markus Fischer, http://guru.josefine.at/~mfischer/
> EMail: mfischer@guru.josefine.at
> PGP Public Key: http://guru.josefine.at/~mfischer/C2272BD0.asc
> PGP Fingerprint: D3B0 DD4F E12B F911 3CE1 C2B5 D674 B445 C227 2BD0
> -All your scripts are belong to Zend-
>
--
Torben Wilson <torben@php.net>
http://www.thebuttlesschaps.com
+1.604.709.0506