[BugFix] Fix transaction stream load TXN_IN_PROCESSING error (backport #54959) #55736
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.
Why I'm doing:
Users occasionally encounter the exception
TXN_IN_PROCESSING
when using transaction stream load.TXN_IN_PROCESSING
means someone is holding theStreamLoadContext
lock and do something, and the new request can't be processed concurrently. This mechanism is designed to prevent the client from sending concurrent requests. But the exception also happens even the client sends requests sequentially which does not meet expectations. There are two possible reasons:StreamLoadContext
lock before each check. So it can conflict with the load request.The second is introduced by #53564 recently, but this problem has been reported before it. So the first should be the primary reason, and I have verified it in a user's environment.
What I'm doing:
Fixes #issue
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist: