-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[ML] When skipping updating mark delete position, execute callback with executor to prevent deadlock #15971
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ML] When skipping updating mark delete position, execute callback with executor to prevent deadlock #15971
Conversation
…th executor to prevent deadlock
|
@lhotari:Thanks for your contribution. For this PR, do we need to update docs? |
|
@lhotari:Thanks for providing doc info! |
managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
Show resolved
Hide resolved
codelipenghui
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great catch!
managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
Show resolved
Hide resolved
|
/pulsarbot rerun-failure-checks |
…th executor to prevent deadlock (apache#15971) (cherry picked from commit bbc404b)
…th executor to prevent deadlock (apache#15971) (cherry picked from commit bbc404b)
Motivation
The broker can dead lock when skipping the updating of mark delete position happens. PR #15067 added the logic to skip updating mark delete position if there's already a later mark delete position. That logic introduced this particular deadlock issue.
Example stack traces of a deadlock (lines of code from fork based on branch-2.8):
Modifications