When router_info initialize() fails(with trace) some resources(
like keepalived process) may not be created. While handling this
exception, l3 agent calls _process_updated_router instead of
again calling _process_added_router, which also fails trying to
access resources which are not created.
In this change, agent will have new router_info(i.e
self.router_info[router_id] = ri) only when initialize() succeeds.
When initialize() fails, as router_info is not part of agent,
"_process_router_if_compatible" will again call initialize().
We also cleanup router_info when initialize() fails.
Reviewed: https:/ /review. openstack. org/431026 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=3e1ed94e389 c427f1da56cde43 a458832078f073
Committed: https:/
Submitter: Jenkins
Branch: master
commit 3e1ed94e389c427 f1da56cde43a458 832078f073
Author: venkata anil <email address hidden>
Date: Wed Feb 8 15:49:47 2017 +0000
Avoid router ri.process if initialize() fails
When router_info initialize() fails(with trace) some resources( updated_ router instead of added_router, which also fails trying to
like keepalived process) may not be created. While handling this
exception, l3 agent calls _process_
again calling _process_
access resources which are not created.
In this change, agent will have new router_info(i.e router_ info[router_ id] = ri) only when initialize() succeeds. router_ if_compatible" will again call initialize().
self.
When initialize() fails, as router_info is not part of agent,
"_process_
We also cleanup router_info when initialize() fails.
Closes-bug: #1662804 c93d6e50846d790 34d774c5d47
Change-Id: I278ac83de57713