On 9/30/20 12:43 AM, Tim Burke wrote:
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
Hi Tim, Thanks for your follow-up. Your advice above fixed the issue, however at least 2 tests aren't deterministic: - tests.subprocess_test.test_communicate_with_poll - tests.subprocess_test.test_communicate_with_poll They both failed at least once with as error: "BlockingIOError: [Errno 11] Resource temporarily unavailable". Any idea what's going on? I've uploaded eventlet 0.26.1 to Experimental anyways, but I really hope we can fix the remaining issues. Cheers, Thomas Goirand (zigo)