Call update_all_ha_network_port_statuses on agent start
As explained in bug [1] when l3 agent fails to report state to the
server, its state is set to AGENT_REVIVED, triggering
fetch_and_sync_all_routers, which will set all its HA network ports
to DOWN, resulting in
1) ovs agent rewiring these ports and setting status to ACTIVE
2) when these ports are active, server sends router update to l3 agent
As server, ovs and l3 agents are busy with this processing, l3 agent
may fail again reporting state, repeating this process.
As l3 agent is repeatedly processing same routers, SIGHUPs are
frequently sent to keepalived, resulting in multiple masters.
To fix this, we call update_all_ha_network_port_statuses in l3 agent
start instead of calling from fetch_and_sync_all_routers.
Note: This RPC update_all_ha_network_port_statuses is added in only pike
and later branches. In older branches, we were using get_router_ids RPC
to invoke _update_ha_network_port_status. As we need to invoke this
functionality during l3 agent start and get_service_plugin_list() is the
only available RPC which is called during l3 agent start, we call
_update_ha_network_port_status from get_service_plugin_list.
Change-Id: Ia9d5549f7d53b538c9c9f93fe6aa71ffff15524a
Related-bug: #1597461
Closes-Bug: #1731595
(cherry picked from commit 9ab1ad1433d54fec3e5b04f1edf8ca436e1f7af1)
(cherry picked from commit a6d985bbca57b5027eecaa43071964b14d9075d9)
Reviewed: https:/ /review. openstack. org/522792 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=385ac553e33 f12c34e8a234593 37b2f0af0b75eb
Committed: https:/
Submitter: Zuul
Branch: stable/ocata
commit 385ac553e33f12c 34e8a23459337b2 f0af0b75eb
Author: venkata anil <email address hidden>
Date: Thu Nov 23 18:40:30 2017 +0000
Call update_ all_ha_ network_ port_statuses on agent start
As explained in bug [1] when l3 agent fails to report state to the and_sync_ all_routers, which will set all its HA network ports
server, its state is set to AGENT_REVIVED, triggering
fetch_
to DOWN, resulting in
1) ovs agent rewiring these ports and setting status to ACTIVE
2) when these ports are active, server sends router update to l3 agent
As server, ovs and l3 agents are busy with this processing, l3 agent
may fail again reporting state, repeating this process.
As l3 agent is repeatedly processing same routers, SIGHUPs are
frequently sent to keepalived, resulting in multiple masters.
To fix this, we call update_ all_ha_ network_ port_statuses in l3 agent sync_all_ routers.
start instead of calling from fetch_and_
[1] https:/ /bugs.launchpad .net/neutron/ +bug/1731595/ comments/ 7 agent/l3/ agent.py
neutron/ api/rpc/ handlers/ l3_rpc. py
Conflicts:
neutron/
Note: This RPC update_ all_ha_ network_ port_statuses is added in only pike ha_network_ port_status. As we need to invoke this plugin_ list() is the ha_network_ port_status from get_service_ plugin_ list.
and later branches. In older branches, we were using get_router_ids RPC
to invoke _update_
functionality during l3 agent start and get_service_
only available RPC which is called during l3 agent start, we call
_update_
Change-Id: Ia9d5549f7d53b5 38c9c9f93fe6aa7 1ffff15524a c3e5b04f1edf8ca 436e1f7af1) 27eecaa43071964 b14d9075d9)
Related-bug: #1597461
Closes-Bug: #1731595
(cherry picked from commit 9ab1ad1433d54fe
(cherry picked from commit a6d985bbca57b50