Nick,

http://dev.mysql.com/doc/mysql/en/innodb-monitor.html

you can use innodb_lock_monitor to find out who is locking the row.

Best regards,

Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM tables
http://www.innodb.com/order.php


Order MySQL Network from http://www.mysql.com/network/

....................
We have something I can't figure out happening on one of our servers. It's running 4.0.23
on OSX.
One of the InnoDB tables is locked even though we can't see any process that is even
active that
could have locked it. SHOW OPEN TABLES doesn't show it as in use or locked. We've tried
all sorts
of things to get access to it, short of bouncing the server, but it keeps saying it's
locked. When
we try to acquire a lock on that table, the process list says "SYSTEM LOCK" and we get the
good old
"Lock wait timeout exceeded; Try restarting transaction" message after 30 seconds.


I've tried this with AUTOCOMMIT on and off, with LOCK TABLES and with START TRANSACTION...
nothing
seems to help. Strangely, FLUSH TABLES WITH READ LOCK seems to succeed, but after
unlocking them,
we still can't get a lock for this table.


I've never been able to see how we can find out which connection has the lock on a given
table. If
that's possible, I'd like to know that, too, so I could at least know how it got locked in
the first
place.


Could a misbehaving client do this in a way that would cause the lock to persist even
after the
client has disconnected? If so, ugh.


Any help appreciated.

Nick


-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to