ServiceBrowser must recheck for handlers to call when holding condition#477
Merged
Merged
Conversation
bdraco
commented
Jun 6, 2021
- There was a short race condition window where the ServiceBrowser could add to _handlers_to_call in the Engine thread, have the condition notify_all called, but since the ServiceBrowser was not yet holding the condition it would not know to stop waiting and process the handlers to call.
79f81fa to
43464a7
Compare
bdraco
added a commit
to bdraco/python-zeroconf
that referenced
this pull request
Jun 6, 2021
- Using a asyncio.Condition permits fixing a race condition in processing handlers similar to the sync version in python-zeroconf#477
Codecov Report
@@ Coverage Diff @@
## master #477 +/- ##
==========================================
- Coverage 95.62% 89.40% -6.22%
==========================================
Files 4 4
Lines 3338 3342 +4
Branches 402 400 -2
==========================================
- Hits 3192 2988 -204
- Misses 89 275 +186
- Partials 57 79 +22
Continue to review full report at Codecov.
|
bdraco
added a commit
to bdraco/python-zeroconf
that referenced
this pull request
Jun 7, 2021
- The root cause of the test failing should be fixed by python-zeroconf#419 and python-zeroconf#477
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
could add to _handlers_to_call in the Engine thread, have the
condition notify_all called, but since the ServiceBrowser was
not yet holding the condition it would not know to stop waiting
and process the handlers to call.
Fixes #476 for sync, #483 is the fix for async
Fixes #471