なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2023/07/17)

2023/07/17分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

actioncable/CHANGELOG.md


Fix comment syntax [ci-skip]

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、及び、configActionCable.serverdelegateするよう修正しています。pubsubを使用するメソッド(e.g. stop_stream_from)をテストで使用出来るようにする為。