[6.1] Frequent crashes in LLBuildProgressTracker while building swift-java on linux and swift 6.1.2 #9019
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.
Explanation:
(cherry picked from commit 16452e1)
Frequent crashes in LLBuildProgressTracker while building swift-java on linux and swift 6.1.2
This was a race condition because the
Command is associated with a handle (pointer) that may be reclaimed when this function finishes.
Scope:
Minimal, copy variables into locals before accessing them from async block.
Issues:
swiftlang/swift-java#314 almost all CI runs fail with this race condition due to the timing of the command being influenced by the gradle build in swift-java.
Original PRs:
#8998
Risk:
Minimal. Change explicitly copies variables prior to usage in async block. This avoided a race condition that would manifest before as null pointer crashes when trying to access these variables.
Change has been tested in main and 6.2
Testing:
Confirmed fixed in main and 6.2. Manually verified in always reproducing project.