なるようになるブログ

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

rails commit log流し読み(2018/08/24)

2018/08/24分のコミットです。

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

activestorage/CHANGELOG.md


Merge pull request #31696 from BrentWheeldon/bmw-connection-pool-load-deadlock

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

connection poolからconnectionの取得待ちをする際に、スレッドがデッドロック状態になってしまうバグがあったのを修正しています。


Merge pull request #33681 from minaslater/replace-white-and-blacklist

各docやexampleコードでblacklist / whitelistという言葉を使用していたのを、permitted list / restricted listを使用するよう修正しています。

Master/slave -> primary/replicaと同様に、blacklist / whitelistも差別的な意味合いがある言葉の為、との事です。

"Software development still has a lot of terminology with a racist or patriarchal background. Let's change that. - Blacklist ➡ Denylist - Whitelist ➡ Allowlist - Killer app ➡ Beloved app - Master/slave ➡ primary/replica" のツイートがきっかけで修正が行われています。

参考:Replace use of whitelist with allowlist and blacklist with denylist


Handle only specifically relevant Azure HTTPErrors

activestorage/lib/active_storage/service/azure_storage_service.rbの修正です。

Azure Storageで何かエラーがおきた際に、Azure::Core::Http::HTTPErrorがraiseされたかどうかしかチェックしていなかったのを、errorのtypeまでチェックして、より厳密にエラーのチェックを行うよう修正しています。

azure-storage gem では何かエラーがおきたら全てAzure::Core::Http::HTTPErrorをraiseするようになっていて、エラーの詳細を確認したい場合は、typeを使う側がチェックする必要がある為。

が、テストがコケてしまったので、直後にrevertしています。


Revert "Merge pull request #33667 from cbothner/azure-service-swallowing-all-errors"

という訳で、直前のコミットをrevertしています。


Handle only specifically relevant Azure HTTPErrors

activestorage/lib/active_storage/service/azure_storage_service.rbの修正です。

先ほどRevertされたAzure Storageのエラーハンドリングのリトライです。

ActiveStorage::Service::AzureStorageService#uploadメソッドで、Azure Storageで何かエラーがおきた際にActiveStorage::IntegrityErrorを必ずraiseするようになっていたのを、blobが見つからなかった場合はActiveStorage::FileNotFoundErrorをraiseするよう修正。及び、ActiveStorage::Service::AzureStorageService#deleteメソッドで、Azure Storageで何かエラーがおきた際にエラーを無視していたのを、blobが見つからなかった以外のエラーの場合は、エラーをそのままraiseするよう修正しています。