← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1439696] [NEW] Referencing a network ID for the first time from Heat would fail

 

Public bug reported:

Creating a stack with heat that creates a network and then referencing that network ID to a consumer (in this case lb-healthmonitor) would result in a 404 for that ID.
This happens only at the first attempt to do so. Deleting the heat stack and recreating it using the same template would result in a success so it does not look like an issue originating from heat. Later operations either by neutron or Heat would succeed and the only way to reproduce this specific issue is to unstack and re-stack.

>From heat's log (has neutron's answer):

REQ: curl -i http://10.35.160.83:9696//v2.0/lb/health_monitors.json -X POST -H "User-Agent: python-neutronclient" -H "X-Auth-Token: 40357276a5b34f1bb4980d566d36e9c4" -d '{"health_monitor": {"delay": 5, "max_retr
 from (pid=10195) http_log_req /usr/lib/python2.7/site-packages/neutronclient/common/utils.py:130
2015-04-02 15:24:19.791 DEBUG neutronclient.client [-] RESP:404 {'date': 'Thu, 02 Apr 2015 12:24:19 GMT', 'connection': 'keep-alive', 'content-type': 'text/plain; cha
                                                                            
The resource could not be found.                                            
                                                                            
                                                                            
 from (pid=10195) http_log_resp /usr/lib/python2.7/site-packages/neutronclient/common/utils.py:139
2015-04-02 15:24:19.791 DEBUG neutronclient.v2_0.client [-] Error message: 404 Not Found
                                                                            
The resource could not be found.                                            
                                                                            
    from (pid=10195) _handle_fault_response /usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py:173
2015-04-02 15:24:19.792 INFO heat.engine.resource [-] CREATE: HealthMonitor "monitor" Stack "test-001-load_balancer-ukmrf56u2dm4" [7aab3fa0-b71d-47b3-acc5-4767cb23b99
2015-04-02 15:24:19.792 TRACE heat.engine.resource Traceback (most recent call last):
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resource.py", line 466, in _action_recorder
2015-04-02 15:24:19.792 TRACE heat.engine.resource     yield
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resource.py", line 536, in _do_action
2015-04-02 15:24:19.792 TRACE heat.engine.resource     yield self.action_handler_task(action, args=handler_args)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/scheduler.py", line 295, in wrapper
2015-04-02 15:24:19.792 TRACE heat.engine.resource     step = next(subtask)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resource.py", line 507, in action_handler_task
2015-04-02 15:24:19.792 TRACE heat.engine.resource     handler_data = handler(*args)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resources/neutron/loadbalancer.py", line 146, in handle_create
2015-04-02 15:24:19.792 TRACE heat.engine.resource     {'health_monitor': properties})['health_monitor']
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 99, in with_params
2015-04-02 15:24:19.792 TRACE heat.engine.resource     ret = self.function(instance, *args, **kwargs)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 1064, in create_health_monitor
2015-04-02 15:24:19.792 TRACE heat.engine.resource     return self.post(self.health_monitors_path, body=body)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 295, in post
2015-04-02 15:24:19.792 TRACE heat.engine.resource     headers=headers, params=params)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 208, in do_request
2015-04-02 15:24:19.792 TRACE heat.engine.resource     self._handle_fault_response(status_code, replybody)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 182, in _handle_fault_response
2015-04-02 15:24:19.792 TRACE heat.engine.resource     exception_handler_v20(status_code, des_error_body)
2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 80, in exception_handler_v20
2015-04-02 15:24:19.792 TRACE heat.engine.resource     message=message)
2015-04-02 15:24:19.792 TRACE heat.engine.resource NeutronClientException: 404 Not Found
2015-04-02 15:24:19.792 TRACE heat.engine.resource  
2015-04-02 15:24:19.792 TRACE heat.engine.resource The resource could not be found.

** Affects: neutron
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1439696

Title:
  Referencing a network ID for the first time from Heat would fail

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  Creating a stack with heat that creates a network and then referencing that network ID to a consumer (in this case lb-healthmonitor) would result in a 404 for that ID.
  This happens only at the first attempt to do so. Deleting the heat stack and recreating it using the same template would result in a success so it does not look like an issue originating from heat. Later operations either by neutron or Heat would succeed and the only way to reproduce this specific issue is to unstack and re-stack.

  From heat's log (has neutron's answer):

  REQ: curl -i http://10.35.160.83:9696//v2.0/lb/health_monitors.json -X POST -H "User-Agent: python-neutronclient" -H "X-Auth-Token: 40357276a5b34f1bb4980d566d36e9c4" -d '{"health_monitor": {"delay": 5, "max_retr
   from (pid=10195) http_log_req /usr/lib/python2.7/site-packages/neutronclient/common/utils.py:130
  2015-04-02 15:24:19.791 DEBUG neutronclient.client [-] RESP:404 {'date': 'Thu, 02 Apr 2015 12:24:19 GMT', 'connection': 'keep-alive', 'content-type': 'text/plain; cha
                                                                              
  The resource could not be found.                                            
                                                                              
                                                                              
   from (pid=10195) http_log_resp /usr/lib/python2.7/site-packages/neutronclient/common/utils.py:139
  2015-04-02 15:24:19.791 DEBUG neutronclient.v2_0.client [-] Error message: 404 Not Found
                                                                              
  The resource could not be found.                                            
                                                                              
      from (pid=10195) _handle_fault_response /usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py:173
  2015-04-02 15:24:19.792 INFO heat.engine.resource [-] CREATE: HealthMonitor "monitor" Stack "test-001-load_balancer-ukmrf56u2dm4" [7aab3fa0-b71d-47b3-acc5-4767cb23b99
  2015-04-02 15:24:19.792 TRACE heat.engine.resource Traceback (most recent call last):
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resource.py", line 466, in _action_recorder
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     yield
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resource.py", line 536, in _do_action
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     yield self.action_handler_task(action, args=handler_args)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/scheduler.py", line 295, in wrapper
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     step = next(subtask)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resource.py", line 507, in action_handler_task
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     handler_data = handler(*args)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/opt/stack/heat/heat/engine/resources/neutron/loadbalancer.py", line 146, in handle_create
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     {'health_monitor': properties})['health_monitor']
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 99, in with_params
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     ret = self.function(instance, *args, **kwargs)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 1064, in create_health_monitor
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     return self.post(self.health_monitors_path, body=body)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 295, in post
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     headers=headers, params=params)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 208, in do_request
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     self._handle_fault_response(status_code, replybody)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 182, in _handle_fault_response
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     exception_handler_v20(status_code, des_error_body)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource   File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 80, in exception_handler_v20
  2015-04-02 15:24:19.792 TRACE heat.engine.resource     message=message)
  2015-04-02 15:24:19.792 TRACE heat.engine.resource NeutronClientException: 404 Not Found
  2015-04-02 15:24:19.792 TRACE heat.engine.resource  
  2015-04-02 15:24:19.792 TRACE heat.engine.resource The resource could not be found.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1439696/+subscriptions


Follow ups

References