なるようになるブログ

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

rails commit log流し読み(2019/08/16)

2019/08/16分のコミットです。

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

activerecord/CHANGELOG.md


Improve detection of ActiveRecord::StatementTimeout with mysql2 adapter

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbの修正です。

ER_FILSORT_ABORTが発生した場合、StatementTimeout exceptionをraiseするよう修正しています。statementがfilesortの段階でエラーになった場合ER_FILSORT_ABORTが返ってくる、かつ、これは状況としてはtimeoutが適切(MAX_EXECUTION_TIME以上に時間が掛かってエラーになった為)だろう、という事です。

なお、そもそもER_FILSORT_ABORTではなくER_QUERY_TIMEOUTになるべきでは、という話もあるらしく、MySQL側にその旨バグ報告もされています。参考: MySQL Bugs: #96537: Differing error for MAX_EXECUTION_TIME depending on query stage at termination


Fix attaching many uploaded files one at a time

activestorage/lib/active_storage/attached/changes/delete_many.rbactivestorage/lib/active_storage/attached/many.rbの修正です。

has_many_attached macroを指定していて、複数の異なるファイルを同時にアップロードした場合に、一部ファイルしか保存されないバグがあったのを修正しています。


Merge pull request #36803 from andrewkress/fix-issue-36799

railties/lib/rails/engine/configuration.rbの修正です。

eager loadの対象から除外されるディレクトリを取得するのにwebpacker.ymlを直接パースしていたのをやめて、Engine::Configurationディレクトリを指定する為のattributes(javascript_path)を追加し、Webpacker gem側からディレクトリを指定出来るよう修正しています。

ファイルのパースだけでは正しくディレクトリを指定出来ないケースがあった為。


Add entry about the classic autoload to the upgrading guide

rails guideのUpgrading Ruby on Railsの修正です。

How to Use the Classic Autoloader in Rails 6の項に、Classic Autoloader + Rails 6ではthread-safetyに懸念がある旨注記を追加しています。


Remove lonely alignment whitespace from Puma config

railties/lib/rails/generators/rails/app/templates/config/puma.rb.ttの修正です。

ENV.fetch("PORT")の前にあった不要なスペースを削除しています。


Merge pull request #36946 from eugeneius/return_only_media_type_on_content_type_new_default

railties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.ttの修正です。

action_dispatch.return_only_media_type_on_content_typeの値がRails 6.0で推奨する値と異なっていたのを修正しています。


Update mini_magick to the latest version

Gemfile.lockの修正です。

mini_magickのバージョンを4.9.5に更新しています。Rubyのwarningへの対応が行われている為。


Highlight database.yml as code block in multiple databases guide [ci skip]

rails guideのMultiple Databases with Active Recordの修正です。

database.ymlをクォートしてコードブロックとして表示されるよう修正しています。


:warning: calling URI.open via Kernel#open is deprecated, call URI.open directly

activesupport/test/multibyte_test_helpers.rbの修正です。

deprecatedになっているKernel#open経由でURI.openを使用している箇所があったのを、URI.openを直接使用するよう修正しています。