2024/02/08分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Fix a reace condition in FutureResult#instrument
activerecord/lib/active_record/future_result.rb
の修正です。
ActiveRecord::FutureResult#instrument
でeventのrecordが完全に完了してからeventのリストにeventを追加するよう修正しています。不完全な状態でflushされてしまうのを避けるため。
Share already loaded fixtures across test classes
activerecord/lib/active_record/test_fixtures.rb
の修正です。
load済みのfixturesを異なるテストクラス間で共有出来るよう修正しています。
Gracefully handle transactional fixtures leaks
activerecord/lib/active_record/test_fixtures.rb
の修正です。
fixtureのteardown処理で、transactionのrollbackがエラーになった場合、load済みのfixtureのキャッシュを破棄、及び、connectionの切断を行うよう修正しています。rollbackでエラーになるのはfixtureロード後にスキーマが変更されたような場合であり、fixtureの再ロードが必要なはずなのでキャッシュを破棄するようにしています。
Properly synchronize Mysql2Adapter#active?
and TrilogyAdapter#active?
Active Recordの修正です。
MySQL2 adapter、及び、TrilogyAdapterでactive?
、disconnect!
及びverify!
メソッドにスレッドの排他制御を行うよう修正しています。通常connectionはスレッド間で共有されないので排他制御は無くても問題無いはずなのですが、transactional tests及びsystem tests実行時に問題になる為、排他制御を追加したとの事です。