This is already fix released all the way back to stable/train -
https://review.opendev.org/q/I2cc58c30cf844ee0ecf0611ecdec430086464790 -
so i will update LP to reflect that.
** Changed in: neutron
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1916022
Title:
L3HA Race condition during startup of the agent may cause inconsistent
router's states
Status in neutron:
Fix Released
Bug description:
I observed that issue in Tobiko jobs, like e.g.
https://5f31a0f7dc56e4b42a89-207bd119fd0c3b58e9c78074b243256d.ssl.cf2.rackcdn.com/776284/2/check
/devstack-tobiko-gate-
multinode/257fd87/tobiko_results_05_verify_resources_scenario.html
Problem with HA routers. What happens there is that when neutron-l3-agent and
then keepalived on node which is master is killed, new node becomes master but
VIP address isn't removed from the qrouter namespace.
Then some other node becomes new master as keepalived on that running nodes
did its job.
When stopped agent is started it first calls update_initial_state()
https://github.com/openstack/neutron/blob/90309cf6e2f3ed5ae6d5f4cca3c5351c2ac67a13/neutron/agent/l3/ha_router.py#L159
which will enqueue state change event and may do it with "primary" state
(it's old state from before agent and keepalived was down.
And immediately after that, it will also spawn state change monitor. And that
monitor will also enqueue state change event. This one may be with correct
"backup" state already. But as there was already state "primary" scheduled to
be processed, new one will be dropped.
And due to that it will end up with 2 nodes in "primary" state.
I think that calling of update_initial_state() isn't really needed as
state change monitor is handling notification of the initial state
always just after start of the process.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1916022/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp