nova client sends floating IP call to wrong node
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
When I try to assign a floating IP to an instance, I have to run the command several time before it actually manage to send the call to the network-node who actually has info about the instance. In my setup I currently have one controller and two compute notes. I'm running multi_host, so every compute-node is running nova-network and nova-api as well. As of now it's quite consistent that I have to run the command three times before it will succeed. The first time it's sent to the wrong node, and the log prints
DEBUG nova.utils [-] Attempting to grab semaphore "get_dhcp" for method "_get_dhcp_ip"... from (pid=8991) inner /usr/lib/
The second time, it's sent to the right node, but I get the same log as above. Finally the third time, it works as it should.
When it fail I must kill the command with ctrl+c and I get this traceback:
nova add-floating-ip 142 192.168.10.132
^CTraceback (most recent call last):
File "/usr/bin/nova", line 9, in <module>
load_
File "/usr/lib/
OpenStackCo
File "/usr/lib/
args.
File "/usr/lib/
server.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
return self.api.
File "/usr/lib/
return self._cs_
File "/usr/lib/
**kwargs)
File "/usr/lib/
resp, body = super(HTTPClient, self).request(
File "/usr/lib/
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/
(response, content) = self._conn_
File "/usr/lib/
response = conn.getresponse()
File "/usr/lib/
response.
File "/usr/lib/
version, status, reason = self._read_status()
File "/usr/lib/
line = self.fp.readline()
File "/usr/lib/
data = recv(1)
no longer affects: | nova/diablo |
Are you sure that mult_host is true on the network? This works correctly in essex. The code has moved, but I don't see anything that would cause this to occur in the diablo code unless multi_host isn't set.