Fix potential deadlock by resetting config before finalizing state#459
Merged
Conversation
This commit swaps the order of operations in the finalize function to ensure the global configuration is reset before the state is finalized. Although the write lock on STATE is supposed to be released before the CONFIG lock is acquired, we have observed deadlocks in some builds, likely because STATE does not immediately go out of scope. By ensuring the CONFIG lock is always acquired prior to the STATE lock, we align with the locking order used throughout the rest of the codebase and eliminate this potential deadlock. Assisted-by: Gemini <gemini@google.com> Signed-off-by: Simo Sorce <simo@redhat.com>
There was a problem hiding this comment.
Code Review
This pull request modifies the finalize function in src/fns/general.rs to reorder the finalization steps, resetting the global configuration (CONFIG) before finalizing the global state (STATE). There are no review comments provided, and the changes appear straightforward, so I have no additional feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Jakuje
approved these changes
Jun 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
This PR swaps the order of operations in the finalize function to ensure the global configuration is reset before the state is finalized. Although the write lock on STATE is supposed to be released before the CONFIG lock is acquired, we have observed deadlocks in some builds, likely because STATE does not immediately go out of scope.
By ensuring the CONFIG lock is always acquired prior to the STATE lock, we align with the locking order used throughout the rest of the codebase and eliminate this potential deadlock.
NOTE: this happens only when tests are run with high parallelization where they repeately initialize and tear down tokens for now, it is very unlikely to happen in a real application.
Checklist
Reviewer's checklist: