Mysql::Error: Lock wait timeout exceeded;


My application throws some “Mysql::Error: Lock wait timeout” from time
to time. I think it coincides with the upgrade of Rails to version 2.0.2

The exact error is this:

Mysql::Error: Lock wait timeout exceeded; try restarting transaction:
INSERT INTO sessions (updated_at, session_id, data)
VALUES(‘2008-01-20 06:31:40’, ‘34264f71fed074a320ed77dda7a86bda’,

The sessions table has been generated by rake.

Can anyone give me a clue what could be locking the table.

10x in advance

How many hits / second are you servicing ? How much load is your db
under ? How well tuned is your db, etc. The lock timeout is most
likely caused by other rails processes contenting for the write lock
on that table, probably inside a transaction.

mysql> show innodb status\G

will show you details about the last deadlock or lock timeout, this
will give you a clue as to the other writers to this table.

mysql> show table status like ‘sessions’;

will tell you the details about the sessions table, if it isn’t innodb
then you can only have a single writer to the table, and under heavy
load this will be a problem.



On Jan 21, 8:11 pm, Stanislav B. <ruby-forum-incom…@andreas-

Howdy. Take a look at this article:

– Tom M., CTO
– Engine Y., Ruby on Rails Hosting
– Support, Scalability, Reliability
– (866) 518-YARD (9273) x201

On Jan 21, 4:11 am, Stanislav B. <ruby-forum-incom…@andreas-