2023/07/17分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
actioncable/CHANGELOG.md
activerecord/lib/active_record/fixtures.rb
のdocの修正です。
composite_identify
メソッドのdocのフォーマットを修正しています。
Merge pull request #48716 from Shopify/schema-reflection
Active Recordの修正です。
Schema Cacheでconnectionを保持しないようリファクタリングしています。Schema Cacheではattribute等の情報が不足していた場合に、queryを実行してschemaを取得するようになっていました。schemaは全てのconnectionで保持される為、multi-threadedで処理が行われる場合、本来想定とは違うconnection経由で処理が行われる可能性がある、という問題がありました。
これはそもそも、connection adapterが内部でMonitorを使用していた為問題になっていなかったのですが、AbstractAdapter: only synchronize when necessaryで同期処理を外した為、問題が表面化しました。そのため、このコミットでは、Schema Cacheでconnectionを保持しないようにし、別途schema管理用のクラスを作成し、そちらで排他制御&schemaの取得処理を行うよう修正しています。
Merge pull request #48706 from julianfssen/add-pubsub-to-connection-stub
actioncable/lib/action_cable/channel/test_case.rb
の修正です。
ActionCable::Channel::ConnectionStub
で、pubsub
、及び、config
をActionCable.server
にdelegateするよう修正しています。pubsub
を使用するメソッド(e.g. stop_stream_from
)をテストで使用出来るようにする為。