The Wire ยท Showcase
RAILS FIXES FROZEN CACHE BUGS IN RACTORIZED APPS, SOLID QUEUE CATCHES UP
By RepoJournal ยท Filed ยท About Rails
Rails shipped fixes for FrozenErrors that break ractorized applications when caches freeze with the app, while Solid Queue patched a breaking change in ActiveJob's shutdown protocol.
Rails merged a critical fix [1] for FrozenErrors that occur when Rails.application.ractorize! is called, which recursively freezes Rails.cache and triggers LocalCache initialization failures. The same PR exposed a separate bug in Rails' error reporter that lazily initializes during exception handling on frozen objects [2]. In parallel, Rails shipped a memcache optimization [3] that batches cache writes using dalli's set_multi method, reducing roundtrips when available. On the queue adapter front, Solid Queue [4] patched a signature mismatch with Rails' new checkpoint protocol. Rails commit 6d1c401dc7 started passing the running job instance to queue_adapter.stopping?, which broke Solid Queue's method signature and threw ArgumentError. The Solid Queue fix accepts the optional argument while maintaining backward compatibility with the existing shutdown flag logic.
Action items
- โ Pull latest rails/rails to pick up FrozenError fixes for ractorized apps rails/rails [immediate]
- โ Update rails/solid_queue to fix ActiveJob checkpoint compatibility rails/solid_queue [immediate]
- โ Verify memcache deployments have dalli >= 3.2.8 to enable write_multi batching rails/rails [plan]
References
- [1] Fix some FrozenErrors for ractorized application โ rails/rails
- [2] Merge pull request #58061 from Shopify/hm-zsroumltylqypmvm rails/rails
- [3] Merge pull request #58066 from ilianah/memcache-store-write-multi rails/rails
- [4] Accept optional job argument in stopping? โ rails/solid_queue