Help with eventlet 0.26.1 and dnspython >= 2
Tim Burke
tburke at nvidia.com
Tue Sep 29 22:43:54 UTC 2020
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 at 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/46fc185c8f92008c65aef2713fc1445bfc5f6fec
>
> 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
More information about the openstack-discuss
mailing list