DNS resolution through eventlet contact nameservers if there's an IPv4 or IPv6 entry present in hosts file
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
When trying to resolve a hostname on a node with no nameservers configured and only one entry is present for it in /etc/hosts (IPv4 or IPv6), eventlet will try to fetch the other entry over the network.
This changes the behavior from what the original getaddrinfo() implementation does and causes 30 second delays and often timeouts when, for example, metadata agent tries to contact Nova [0].
Here it's a simple reproducer which shows the behavior when we do the monkey patching:
import eventlet
import socket
import time
print socket.
print time.time()
eventlet.
print socket.
print time.time()
Eventlet issue reported here [1] and fix got merged in master branch.
[0] https:/
[1] https:/
Changed in neutron: | |
status: | New → Confirmed |
Is the action item for Neutron to make sure we use eventlet with the merged fix?