-
Notifications
You must be signed in to change notification settings - Fork 495
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
dns.asyncresolver timeout #637
Comments
I am no windows expert at all, but I ran this on a windows server 2019 vm and saw the same error you did. I added a bunch of debugging and it looks like loop.create_datagram_endpoint() is generating an error that fails the protocol. The protocol thus never completes, and you get a timeout. The error is "[WinError 10022] An invalid argument was supplied". AFAIK this is not any of the arguments I supplied, and I'm wondering if this is possibly a regression in Python 3.9. Before I had unfixable-by-me Azure problems, we tested dnspython on Windows and all of the async stuff worked. I might try to look into this more, but if you try using "trio" or "curio" for async stuff, they still work. I like either of them a lot better than asyncio, so if you don't need asyncio, you might check them out! |
asyncio on Windows requries connected sockets. [Issue #637]
fixed. |
@rthalley Thanks, new version works like a charm! |
Any expectations of releasing 2.1.1 or 2.2? I don't see tags nor releases on PyPI. |
I'm aiming for 2.2 by the end of the year. No 2.1.1. |
recvfrom(). The fix for [#637] erroneously concluded that that windows asyncio needed connected datagram sockets, but subsequent further investation showed that the actual problem was that windows wants an unconnected datagram socket to be bound before recvfrom is called. Linux autobinds in this case to the wildcard address and port, so that's why we didn't see any problems there. We now ensure that the source is bound.
Hi,
While experimenting with
dns.asyncresolver
I encountered an error which occurs only on my Windows 10 machine and not on WSL or other Linux hosts.Running the following code throws a timeout exception:
I do see a valid response in Wireshark, but it doesn't seem to be captured by Python.
The non-async resolver works just fine though 🤷♀️
Python version: 3.9.1
dnspython: 2.1.0
Any ideas what can cause this?
Thanks for the help!
The text was updated successfully, but these errors were encountered: