[6.2][Distributed] thread-safety also for parameter type metadata #81124
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 is a bug where concurrent access to type metadata can end up returning in-complete metadata and therefore cause a crash at runtime trying to use that type. This happened during type metadata lookups from the distributed runtime. We had the same bug for return types (#79381), but this is for parameter types.
Scope/Impact: Only distributed function invocations are affected. No other piece of the runtime uses these methods.
Risk: Very low, we have fixed the same bug in a different place in the past and are very confident in the fix.
Testing: Added reproduction test and confirmed fix solves it.
Reviewed by: @mikeash
Original PR: #81123
Radar: rdar://146679254