On 9/29/20 1:43 AM, Thomas Goirand wrote:
On 9/28/20 6:10 PM, Radosław Piliszek wrote:
On Mon, Sep 28, 2020 at 5:30 PM Thomas Goirand <zigo@debian.org> wrote:
Hi,
As you may know, eventlet is incompatible with dnspython >= 2.0.0.0rc1. See [1] for the details. However, Debian unstable has 2.0.0.
Would there be some good soul willing to help me fix this situation? I would need a patch to fix this, but I'm really not sure how to start.
Cheers,
Thomas Goirand (zigo)
The [1] reference is missing.
-yoctozepto
Indeed, sorry. So:
[1] https://github.com/eventlet/eventlet/issues/619
I've already integrated this patch in the Debian package: https://github.com/eventlet/eventlet/commit/46fc185c8f92008c65aef2713fc1445b...
However, there's still this failure, related to #619 (linked above):
ERROR: test_noraise_dns_tcp (tests.greendns_test.TinyDNSTests) -------------------------------------------------------------- Traceback (most recent call last): File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_eventlet/build/tests/greendns_test.py", line 904, in test_noraise_dns_tcp self.assertEqual(response.rrset.items[0].address, expected_ip) KeyError: 0
Can anyone solve this?
Cheers,
Thomas Goirand (zigo)
Swapping out the assertion for one like self.assertEqual( [rr.address for rr in response.rrset.items], [expected_ip]) should at least get tests passing, but the other issues identified are still problems:
Eventlet will need to detect which version of dnspython is running (import dns.version) and monkey patch appropriately. Note that the raise_on_truncation is not the only change, as the af parameter is now gone, and you can also pass sockets to both udp() and tcp().
IDK how different udp()/tcp() should be between the pre/post-2.0.0 versions, though. Part of me is tempted to try patching out dns.query._wait_for instead... Tim