Skip to content
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

Convert zeroconf integration to use python-zeroconf #24115

Closed
balloob opened this issue May 25, 2019 · 7 comments · Fixed by #24139
Closed

Convert zeroconf integration to use python-zeroconf #24115

balloob opened this issue May 25, 2019 · 7 comments · Fixed by #24139
Milestone

Comments

@balloob
Copy link
Member

balloob commented May 25, 2019

We migrated the zeroconf integration to use aiozeroconf. However, @amelchio notified us that asyncio.create_datagram_endpoint is not supported on Windows. So we need to migrate back to using python-zeroconf, which does work.

CC @Kane610

@balloob balloob added this to the 0.94.0 milestone May 25, 2019
@elupus
Copy link
Contributor

elupus commented May 25, 2019

https://bugs.python.org/issue29883 issue holding implementation fix for this possibly for python 3.8, not that it helps us unless we can monkey patch it in.

@Jc2k
Copy link
Member

Jc2k commented May 26, 2019

Before we revert anything...

It looks to me like create_datagram_endpoint is one of the pieces the event loop is supposed to provide. On Windows, the Proactor event loop does not support UDP at all. But the docs say its a proactor problem, they don't say its a Selector event loop problem. uvloop also does not support UDP for Windows at all.

If we want to move towards native asyncio integrations as gold standard AND support Windows, is it more appropriate to reconsider uvloop on Windows? Is it better to build on an event loop that supports UDP or on one thats a bit faster but is incomplete? Would this probably go away if we used the stock event loop on Windows?

@Jc2k
Copy link
Member

Jc2k commented May 26, 2019

Arrgh its super lame that the other event loop doesn't support subprocesses.

@balloob
Copy link
Member Author

balloob commented May 26, 2019

My bad for not writing down why alternatives won't work, but it looks like you figured it out.

Given the Python release schedule, we can expect Python 3.9 in either 2020 or 2021. When that happens, we will adopt Python 3.8 as our minimum version and can migrate back…

@balloob
Copy link
Member Author

balloob commented May 26, 2019

Just for other readers:

Event loop Windows Caveat
Proactor No UDP
Selector No subprocess
UVLoop No Windows build available

@pvizeli
Copy link
Member

pvizeli commented May 29, 2019

We need Proactor event loop on windows because we have more as 512 current coroutines because we have a lot of async functions they are awaited. That was the reason why we move over to this on windows initial.

@balloob
Copy link
Member Author

balloob commented May 29, 2019

Python 3.8 contains a new event loop https://twitter.com/VictorStinner/status/1133323227298697216

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants