The Wire · Showcase
TAYLOR PATCHES QUEUE LOCK BUG AS LARAVEL TIGHTENS COLLECTION PERFORMANCE
By RepoJournal · Filed · About Laravel
A critical fix for ShouldBeUniqueUntilProcessing jobs prevents newer dispatches from being orphaned when retries fail, while the framework cuts redundant collection passes across map/filter chains.
Taylor Otwell landed the fix for issue #60042 [1], which addressed a subtle bug where retry attempts couldn't distinguish between two different lock-release scenarios in unique-until-processing jobs. The patch prevents retries from incorrectly releasing locks acquired by newer dispatches, a problem that attempts() <= 1 could never solve. Separately, Lucas Michot shipped three optimization PRs that tighten collection handling across the codebase: eliminating redundant collection passes in map/filter chains [3], preferring isEmpty()/isNotEmpty()/contains() over count() checks [5], and removing duplicate test teardown [2]. The installer also got smarter this cycle [6], letting you press CTRL+U to reverse your starter kit choice mid-installation. Docs landed first-class HEIC and AVIF input/output support [4] and documented both the new monthly log rotation driver [7] and pint's --blade option [8]. These are the kinds of 13.x refinements that matter in production: fewer collection iterations, safer queue mechanics, and better image handling out of the box.
One email a day. Unsubscribe in one click.
Keep up with Laravel 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. Read a past issue →
Action items
- → Review the queue lock fix if you use ShouldBeUniqueUntilProcessing in production laravel/framework [plan]
- → Test HEIC/AVIF input if your application processes image uploads laravel/framework [monitor]
- → Verify pint --blade option in your CI pipeline when you upgrade laravel/framework [plan]
References
- [1] Attempt at lock fix ↗ laravel/framework
- [2] Remove redundant tearDown() in QueueClearCommandTest (#60981) laravel/framework
- [3] [13.x] Avoid redundant Collection passes in map/filter/reject chains ↗ laravel/framework
- [4] [13.x] Add HEIC and additional AVIF support ↗ laravel/framework
- [5] [13.x] Prefer isEmpty()/isNotEmpty()/contains() over count() checks ↗ laravel/framework
- [6] Use the forms feature from Laravel prompts ↗ laravel/installer
- [7] [13.x] document the new monthly log rotation driver ↗ laravel/docs
- [8] [13.x] Documents `--blade` option on `pint` (#11313) laravel/docs