[Shopify Sync] Fix nil reservation when queue is empty #87
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.
Summary
Cherry-picks Shopify's fix for nil reservation bug (commit
40d568c). Prevents workers from setting@reserved_testtonilwhen the queue is empty, which could cause crashes or unexpected behavior.Changes
Modified Files
ruby/lib/ci/queue/redis/worker.rb- Updatedreservemethod to only set@reserved_testwhen test is non-nilThe Bug
Previously, when
try_to_reserve_lost_testandtry_to_reserve_testboth returnednil(queue empty), the code would still set@reserved_test = nil, potentially causing issues with reservation tracking.The Fix
Conflict Resolution
✅ Adapted for Figma's architecture:
reserved_tests(Set)@reserved_test(single instance variable)Benefits
Testing
Original Shopify PR
40d568cRisk Assessment
Risk Level: Low
cc: @Dkeegan