Fixed in RDO by included in https://github.com/rdo-common/python-eventlet/commit/5c9aff6d5635fcc9cb6b96d4b9ccd881b4099952 python-eventlet-0.20.1-3.el7
This bug is marked for inclusion in the errata but does not currently contain draft documentation text. To ensure the timely release of this advisory please provide draft documentation text for this bug as soon as possible. If you do not think this bug requires errata documentation, set the requires_doc_text flag to "-". To add draft documentation text: * Select the documentation type from the "Doc Type" drop down field. * A template will be provided in the "Doc Text" field based on the "Doc Type" value selected. Enter draft text in the "Doc Text" field.
Fix verified: OSP13 puddle 2018-08-16.1 rpm -qa | grep python-eventlet python-eventlet-0.20.1-5.1.el7ost.noarch I curl the metadata I got it immediately, no delay.
Hi Eran, Curl is not using eventlet so we're not exercising the fix in this bug. The right way to do it is either through metadata service or through a python script importing eventlet and monkey patching. I attached a reproducer earlier: --- Additional comment from Daniel Alvarez Sanchez on 2018-08-01 12:04:02 EDT --- Here is a reproducer: import eventlet eventlet.monkey_patch() import socket print socket.getaddrinfo('overcloud.internalapi.localdomain', 80, 0, socket.SOCK_STREAM) For actually verifying this bug you need to add overcloud.internalapi.localdomain to /etc/hosts and remove all nameservers from /etc/resolv.conf. Timing the above script without the fix used to take over 30 seconds. If the fix is applied it should be way faster (1-2 seconds). Let me know if you need any help. Thanks, Daniel
Thanks Eran for giving me access to your setup. Metadata agent container: ()[root@controller-0 /]# rpm -qa | grep eventlet python-eventlet-0.20.1-5.1.el7ost.noarch Empty resolv.conf: ()[root@controller-0 /]# cat /etc/resolv.conf # Generated by NetworkManager ()[root@controller-0 /]# cat test.py import eventlet eventlet.monkey_patch() import socket print socket.getaddrinfo('overcloud.internalapi.localdomain', 80, 0, socket.SOCK_STREAM) ()[root@controller-0 /]# time python test.py [(2, 1, 6, '', ('172.21.33.14', 80))] real 0m0.166s user 0m0.126s sys 0m0.040s We can leave this as VERIFIED
After checked again with Daniel script it looks like the fix is working thanks for help Daniel. ()[root@controller-0 /]# time python test.py │············ [(2, 1, 6, '', ('172.21.33.14', 80))] │············ │············ real 0m0.166s │············ user 0m0.126s │············ sys 0m0.040s ()[root@controller-0 /]# cat /etc/resolv.conf │············ # Generated by NetworkManager │············ ()[root@controller-0 /]# # empty resolv.conf, and python script using eventlet worked fine ()[root@controller-0 /]# rpm -qa | grep eventlet │············ python-eventlet-0.20.1-5.1.el7ost.noarch
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:2573