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