3
1

More than 3 years have passed since last update.

コンテナ上で RSpec 実行中、身に覚えのない MYSQL Lock TimeOut エラー

Last updated at Posted at 2020-06-13

ポンコツすぎる過去の自分に贈る。

原因

  • 原因 1. コンテナ上でテストを走らせる際、binding pryで実行を停止しながらデバッグ等を行っていた。

  • 原因 2. あろうことか、コンテナを停止せず(binding pry で止まっている状態)、新しいターミナルを立ち上げ、再度テストを実行。

  • 原因 3. コンテナが乱立し、同タイミングで複数コンテナがテスト用データの作成等で、 同じDBのテーブルをいじろうとしている状態に。

イメージScreenshot 2020-06-13 16.32.25.png

  • その結果、引き起こされたのが
Mysql2::Error::TimeoutError: Lock wait timeout exceeded

解決策

  • docker-compose psで起動中・停止中のコンテナ一覧を確認。破棄されていないコンテナが大量に:scream:

  • docker-compose kill 対象コンテナで、コンテナを削除。(もしくは、テストを docker-compose run --rm rspec等で実行していた場合、docker-compose stop 対象コンテナで自動的に破棄されます)

戒め

過去のポンコツすぎる自分、コンテナを停止しないままターミナルを破棄って、新しいターミナルでコンテナを実行しようだなんて思わないように。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1