yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #44574
[Bug 1533455] [NEW] Stale processes lives after a fanout deleting HA router RPC between L3 agents
Public bug reported:
Stale processes lives after a fanout deleting HA router RPC between L3
agents:
The race happened between l3 agents after a fanout deleting HA router RPC. Race Scenario:
1. HA router X was schedulered to L3 agent A and L3 agent B
2. X in L3 agent A is the master state
3. a delete X RPC fanout
4. agent A delete all X HA attributes and processes including keepalived
5. (race) agent B was not ready to process the deleting RPC,
assume there are a lot of deleting RPC is in the router update
queue, or anything cause the agent B delay processing the RPC.
6. (race) X in agent B is backup state, now it can not get the VRRP
advertisement from X in agent A because of the 4, so X set it's state to
master
8. (race) enqueue_state_change for X in agent B
9. (race) agent B could process the deleting RPC
10. (race) X is still in agent B router_info, so spawn the metadata-
proxy
11. (race) agent B do deleting process for HA router X gateway, floating
IP etc.
12. (race) agent B remove X from router info
13. 13. metadata-proxy for router X in agent B lives.
If you have tried to use rally to run create_and_delete_routers, you
will find the l3 agent side will have some stale metadata-proxy
processes after the rally test.
The only way to decide whether to spawn the metedata-proxy is to try get
router in agent router_info dict. But enqueue_state_change and
processing router deleting can be run concurrently.
** 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/1533455
Title:
Stale processes lives after a fanout deleting HA router RPC between L3
agents
Status in neutron:
New
Bug description:
Stale processes lives after a fanout deleting HA router RPC between L3
agents:
The race happened between l3 agents after a fanout deleting HA router RPC. Race Scenario:
1. HA router X was schedulered to L3 agent A and L3 agent B
2. X in L3 agent A is the master state
3. a delete X RPC fanout
4. agent A delete all X HA attributes and processes including
keepalived
5. (race) agent B was not ready to process the deleting RPC,
assume there are a lot of deleting RPC is in the router update
queue, or anything cause the agent B delay processing the RPC.
6. (race) X in agent B is backup state, now it can not get the VRRP
advertisement from X in agent A because of the 4, so X set it's state
to master
8. (race) enqueue_state_change for X in agent B
9. (race) agent B could process the deleting RPC
10. (race) X is still in agent B router_info, so spawn the metadata-
proxy
11. (race) agent B do deleting process for HA router X gateway,
floating IP etc.
12. (race) agent B remove X from router info
13. 13. metadata-proxy for router X in agent B lives.
If you have tried to use rally to run create_and_delete_routers, you
will find the l3 agent side will have some stale metadata-proxy
processes after the rally test.
The only way to decide whether to spawn the metedata-proxy is to try
get router in agent router_info dict. But enqueue_state_change and
processing router deleting can be run concurrently.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1533455/+subscriptions
Follow ups