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
Invalid overflow handling in CancelWait of the notifier #518
Labels
good first issue
Good for newcomers
Comments
Hey @tsung-wei-huang , |
@kaushal-malpure this in fact is under the file |
@tsung-wei-huang |
@tsung-wei-huang Can you please review the changes in the above pull request? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
When using the notifier, deadlock may happen when a cancel is called with the max value of epoch.
To Reproduce
I don't have repro step. I guess it is a timing issue :-(
Desktop (please complete the following information):
Additional context
When setting the new state, we inc epoch and decr waiter but with a single waiter and epoch at its max value and no "mask", new state will be :
epoch = 0
waiter = 0
mask = 0
while mask should stay the same. Certainly something like this:
The same issue looks to be present when notify is called while there is a waiter in prepare_wait
The text was updated successfully, but these errors were encountered: