諸行無常

IT色々お勉強中のブログ

Railsで ActiveRecord::LockWaitTimeoutエラーが出た時

RailsActiveRecord::LockWaitTimeoutエラーが出た時

  • 以下エラーが出た時
 ActiveRecord::LockWaitTimeout:
       Mysql2::Error::TimeoutError: Lock wait timeout exceeded; try restarting 
  • mysqlがロックされている
mysql -u root -p -h hoge -p
  • mysqlに入って見てみよう、何かロックされてる
SHOW ENGINE INNODB STATUS;


------------
TRANSACTIONS
------------
Trx id counter 2777594
Purge done for trx's n:o < 2776093 undo n:o < 0 state: running but idle
History list length 269
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 421126298403792, not started
0 lock struct(s), heap size 1136, 0 row lock(s)


24 lock struct(s), heap size 1136, 229 row lock(s), undo log entries 616
MySQL thread id 88, OS thread handle 139650437109504, query id 83569 172.18.0.9 root cleaning up
Trx read view will not see trx with id >= 2776091, sees < 2776091
  • killする
kill 88

解決