タグ

2021年2月22日のブックマーク (1件)

  • Timeout.timeout を安全に使うのは難しい | Wantedly Engineer Blog

    こんにちは!Wantedlyエンジニアの縣です。 先日 Rails アプリケーションで ActiveRecord::StatementInvalid: PG::DuplicatePstatement というエラーが確率的に発生するという事象に遭遇し、その原因が Timeout.timeout と関係していてなかなか面白かったので記事に書き起こすことにしました。 (この記事を書くために今改めて調べてみたところ、 https://github.com/rails/rails/pull/41356 で ActiveRecord に関しては問題が解決していることがわかりました。が、記録として投稿しておきます。) TL;DRRuby の Timeout.timeout は非同期例外を発生させる非同期例外発生時に ActiveRecord の Connection の内部状態が壊れたことでエラーが

    Timeout.timeout を安全に使うのは難しい | Wantedly Engineer Blog
    ruicc
    ruicc 2021/02/22
    え非同期例外がrubyに存在するのか。<del>いつ例外が投げられるかわからない状況で安全なプログラムは書くことは出来ないのでrailsチームは正しい</del> mask相当の処理も書いてあったようだ。