This repository has been archived by the owner on Dec 13, 2023. It is now read-only.
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.
Pull Request type
./gradlew generateLock saveLock
to refresh dependencies)NOTE: Please remember to run
./gradlew spotlessApply
to fix any format violations.Changes in this PR
It did not support reentrancy.
This was a problem at least in following case:
worker -> updateTask -> throw new TerminateWorkflowException -> terminateWorkflow
The lock was acquired twice during above execution order. With no reentrancy, the second lock (wf terminateion) failed and sweeper had to wait until the first lock (task update) was released and only then workflow could be terminated.
Alternatives considered
No alternatives, this was a clear break of the API contract as defined in the Lock service