<div dir="ltr"><div><div><div><div><div>Hello everybody!<br><br></div>I'm facing a quite confusing problem with my kilo neutron-metadata-agent on network node. <br><br></div>What's happening is that randomically, my metadata-agent stop working properly and causes instances to not be launched. The solution is to restart neutron-metadata-agent service, after a period of time, the error happens again.  <br><br></div>What the logs says:<br><br>Accept-Encoding: gzip, deflate^M<br>Content-Length: 0^M<br>Content-Type: text/plain^M<br>Host: 169.254.169.254^M<br>User-Agent: Python-httplib2/0.8 (gzip)^M<br>X-Forwarded-For: 10.4.3.211^M<br>X-Neutron-Router-Id: 55ebf771-8a36-4185-90df-21413638c1fc __call__ /usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py:107<br>2016-03-23 07:00:45.571 31470 DEBUG oslo_concurrency.lockutils [-] Acquired semaphore "('neutron.agent.metadata.agent.MetadataProxyHandler._get_router_networks', '55ebf771-8a36-4185-90df-21413638c1fc')" lock /usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:391<br>2016-03-23 07:00:45.572 31470 DEBUG oslo_concurrency.lockutils [-] Releasing semaphore "('neutron.agent.metadata.agent.MetadataProxyHandler._get_router_networks', '55ebf771-8a36-4185-90df-21413638c1fc')" lock /usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:404<br>2016-03-23 07:00:45.573 31470 DEBUG neutronclient.client [-]<br><span style="color:rgb(255,0,0)"><b>REQ: curl -i <a href="http://controller:35357/tokens" target="_blank">http://controller:35357/tokens</a>
 -X POST -H "User-Agent: python-neutronclient" -d '{"auth": 
{"tenantName": null, "passwordCredentials": {"username": null, 
"password": null}}}'</b></span><br> http_log_req /usr/lib/python2.7/dist-packages/neutronclient/common/utils.py:130<br>2016-03-23
 07:00:45.579 31470 DEBUG neutronclient.client [-] RESP:404 
{'content-length': '93', 'vary': 'X-Auth-Token', 'server': 'Apache/2.4.7
 (Ubuntu)', 'date': 'Wed, 23 Mar 2016 10:00:45 GMT', 'content-type': 
'application/json', 'x-distribution': 'Ubuntu'} {"error": {"message": 
"The resource could not be found.", "code": 404, "title": "Not Found"}}<br> http_log_resp /usr/lib/python2.7/dist-packages/neutronclient/common/utils.py:139<br>2016-03-23 07:00:45.580 31470 ERROR neutron.agent.metadata.agent [-] Unexpected error.<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent Traceback (most recent call last):<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py", line 109, in __call__<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     instance_id, tenant_id = self._get_instance_and_tenant_id(req)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py", line 204, in _get_instance_and_tenant_id<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     ports = self._get_ports(remote_address, network_id, router_id)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py", line 192, in _get_ports<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     networks = self._get_router_networks(router_id)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/common/utils.py", line 101, in __call__<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     return self._get_from_cache(target_self, *args, **kwargs)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/common/utils.py", line 79, in _get_from_cache<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     item = self.func(target_self, *args, **kwargs)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py", line 153, in _get_router_networks<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     internal_ports = self._get_ports_from_server(router_id=router_id)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py", line 135, in _get_ports_from_server<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     return self._get_ports_using_client(filters)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/agent.py", line 177, in _get_ports_using_client<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     ports = client.list_ports(**filters)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 99, in with_params<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     ret = self.function(instance, *args, **kwargs)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 497, in list_ports<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     **_params)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 304, in list<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     for r in self._pagination(collection, path, **params):<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 317, in _pagination<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     res = self.get(path, params=params)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 290, in get<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     headers=headers, params=params)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 267, in retry_request<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     headers=headers, params=params)<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 197, in do_request<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     content_type=self.content_type())<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 158, in do_request<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     self.authenticate_and_fetch_endpoint_url()<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 123, in authenticate_and_fetch_endpoint_url<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     self.authenticate()<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 237, in authenticate<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     self._authenticate_keystone()<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent   File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 218, in _authenticate_keystone<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent     raise exceptions.Unauthorized(message=resp_body)<br>2016-03-23
 07:00:45.580 31470 TRACE neutron.agent.metadata.agent Unauthorized: 
{"error": {"message": "The resource could not be found.", "code": 404, 
"title": "Not Found"}}<br>2016-03-23 07:00:45.580 31470 TRACE neutron.agent.metadata.agent<br>2016-03-23
 07:00:45.584 31470 INFO eventlet.wsgi.server [-] 
10.4.3.211,<local> - - [23/Mar/2016 07:00:45] "GET 
/latest/meta-data/instance-type HTTP/1.1" 500 229 0.015149<br>2016-03-23 07:00:45.590 31469 INFO eventlet.wsgi.server [-] (31469) accepted ''<br>2016-03-23 07:00:45.592 31469 DEBUG neutron.agent.metadata.agent [-] Request: GET /latest/meta-data/ami-id HTTP/1.0^M<br><br><br></div>I don't understand why <span style="color:rgb(255,0,0)"><b> </b><span style="color:rgb(0,0,0)">python-neutronclient gets a token with null values since other services work normally and only metadata-agent throws this error.<br><br></span></span></div><span style="color:rgb(255,0,0)"><span style="color:rgb(0,0,0)">Thanks!!!<br></span></span><div><div><br><br></div></div></div>