RepoJournal
Rails

@rails

Ruby on Rails - Shopify, Basecamp, GitHub all run on it

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

One email a day. Unsubscribe in one click.

Pick a date

Topics: Ruby Full archive →

The Wire · Showcase

SOLID QUEUE 1.5.0 SHIPS WITH CRITICAL CONCURRENCY FIXES

By RepoJournal · Filed · About Rails

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].

One email a day. Unsubscribe in one click.

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.

More from @rails

Daily updates, in your inbox

Follow Rails

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

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?