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.
Closes-bug: #1662804
Change-Id: I278ac83de57713c93d6e50846d79034d774c5d47
(cherry picked from commit 3e1ed94e389c427f1da56cde43a458832078f073)
(cherry picked from commit 71c0e8940661fefbe2830258509e6c4afb887783)
Reviewed: https:/ /review. openstack. org/452100 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=b98267f73af 5a6c6388a76a73d 88e46c90f8a71e
Committed: https:/
Submitter: Jenkins
Branch: stable/newton
commit b98267f73af5a6c 6388a76a73d88e4 6c90f8a71e
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 f1da56cde43a458 832078f073) be2830258509e6c 4afb887783)
Change-Id: I278ac83de57713
(cherry picked from commit 3e1ed94e389c427
(cherry picked from commit 71c0e8940661fef