Fix: GoodJob::AdvisoryLockable::RecordAlreadyAdvisoryLockedError (MAYBE-RAILS-DK) #1797
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The error
GoodJob::AdvisoryLockable::RecordAlreadyAdvisoryLockedError
occurs when attempting to access or manipulate a GoodJob job that is already locked by another process. This is a race condition that needs to be handled gracefully to prevent application crashes and provide a better user experience.The fix involves modifying the GoodJob::JobsController to:
The changes maintain the controller's original intent of managing background jobs while adding proper error handling for concurrent access scenarios. The redirect to jobs_path ensures users aren't left in a broken state when attempting to access locked jobs.
We're also adding comprehensive tests to verify:
The tests follow the existing patterns seen in the codebase, using RSpec and maintaining consistency with the current testing conventions.
Error Details
Summary:
Stacktrace:
Tip
You can make revisions or ask questions of Revise.dev by using
/revise
in any comment or review!/revise Add a comment above the method to explain why we're making this change.
/revise Why did you choose to make this change specifically?
Important
If something doesn’t look right, click to retry this interaction.
Quick links: View in Sentry • View in Revise