aio-libs / aiodns

Simple DNS resolver for asyncio
https://pypi.python.org/pypi/aiodns
MIT License
538 stars 69 forks source link

Add tests indicating timeouts do not really work #64

Closed Snawoot closed 1 year ago

Snawoot commented 5 years ago

Hello!

This PR extends query timeout tests to ensure timeout has real influence on query duration. As you can see this test fails and outlines bug I actually met using aiodns. On my system query lasts 4 seconds instead of 0.1 secs and it seems to be timeout imposed by system (mine is Linux).

If needed, I can also open issue about this bug. My main question is: should I wait for fix or I should workaround this bug with something like asyncio.wait_for?

saghul commented 5 years ago

On your tests, what resolver are you using?

Snawoot commented 5 years ago

@saghul In test, which I modified in this repo, non-existent resolver 1.2.3.4 is used. In test for application I develop I use local dnsmasq set to forward requests for specific domain to non-existent DNS server from reserved IP address space. In both cases timeout set for aiodns has no effect. Instead, I get error response after 4 seconds.

mxrch commented 1 year ago

Hey, this issue is always relevant today and there doesn't seems to be a way to correctly set a timeout. Does anyone has a solution ? :)

saghul commented 1 year ago

I suspect the problem lies in pycares, but I never managed to get to the bottom of it.