127 wires and counting

$ follow Rails

Keep up with Rails in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-07-24
stories 45

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

SOLID QUEUE 1.5.0 SHIPS WITH CRITICAL CONCURRENCY FIXES

By RepoJournal · Filed · About Rails · Composed from the cited sources · methodology

Solid Queue v1.5.0 lands three separate fixes for a production bug that corrupts semaphore counts and lets concurrency-limited jobs run wild.

The release [1] closes a dangerous class of failure where workers with `limits_concurrency` could permanently leak their semaphore permits, allowing jobs to execute far beyond their configured limits. Two independent production reports converged on the same root cause [2], and the fix was ported from starburstlabs/solid_queue after being diagnosed in the wild [3]. The bug manifests when a worker's database heartbeat fails transiently: a supervisor prunes it as dead, releases its concurrency lock, and unblocks replacements, but the semaphore value never gets properly capped. Three separate PRs address it [2], [3], [4]: guarding `signal_all` against incrementing beyond limit, preventing wrong release of blocked jobs, and capping semaphore increments per concurrency group. Beyond the critical fix, v1.5.0 drops Ruby 3.1 support [1], improves PostgreSQL polling for unspecified queue names, introduces `bin/job check` for configuration validation, and adds default time zone support for recurring tasks. Rails core continues cleanup work across the stack: removing dead branches in MySQL introspection [5], , stripping unused code from Railties and Action Cable [6], and excising dead test runner helpers [7].

Action items

References

  1. [1] v1.5.0 ↗ rails/solid_queue
  2. [2] Prevent concurrency lock leaks that cause duplicate job execution ↗ rails/solid_queue
  3. [3] Prevent wrong release of blocked jobs and semaphore corruption ↗ rails/solid_queue
  4. [4] Guard signal_all against incrementing semaphore beyond its limit ↗ rails/solid_queue
  5. [5] Remove dead branch in MySQL column introspection ↗ rails/rails
  6. [6] Merge pull request #58223 from 55728/remove-unused-railties-actioncable ↗ rails/rails
  7. [7] Merge pull request #58216 from Shopify/rubydex/remove-test-runner-path-parser ↗ rails/rails

Quick answers

What shipped in Rails on July 24, 2026?
Solid Queue v1.5.0 lands three separate fixes for a production bug that corrupts semaphore counts and lets concurrency-limited jobs run wild. In total, 27 commits, 17 pull requests, and 1 releases landed.
Who contributed to Rails on July 24, 2026?
6 developers shipped this update, including Hartley McGuire, Jean Boussier, Amanda Perino, rosa, Tom Blais, and mhenrixon.
What were the notable Rails updates?
v1.5.0, Prevent concurrency lock leaks that cause duplicate job execution, and Prevent wrong release of blocked jobs and semaphore corruption.