Public bug reported:

When router_auto_schedule is configured to true and l3 agent count of ha router 
don't reach max_l3_agents_per_router, auto_schedule_routers will schedule ha 
router to imcompatible l3 agent.
This issue is because of that L3Scheduler don't check if l3 agent is compatible 
with the scheduling router like what it did in get_l3_agent_candidates. see 
https://github.com/openstack/neutron/blob/master/neutron/scheduler/l3_agent_scheduler.py#L313.
 

How to reproduce:
Scenario 1
- legacy mode, three network nodes: host_1, host_2, host_3. Configure host_3 
with handle_internal_only_routers = false.
- create a ha router router-A, ensure that router-A is only hosted by host_1 
and host_2.
- restart l3 agent on host_3, then router-A is hosted by three agents, 
including agent on host_3.

Scenario 2
- dvr mode, two network nodes: host_1 and host_2 are configured to dvr_snat, 
one compute node: host_3 is configured to dvr.
- create a ha router router-A, ensure that router-A is only hosted by host_1 
and host_2.
- restart l3 agent on host_3, then router-A is hosted by three agents, 
including agent on host_3.

Expected behavior:
- auto_schedule_routers() and schedule() in L3Scheduler should choose 
candidates with consistent standards. ha router shouldn't be scheduled to 
imcompatible agent after auto_schedule_routers.

Affected versions:
- I saw this issue in Kilo, and reproduced it in master branch. I guess liberty 
and mitaka are affected also.

** Affects: neutron
     Importance: Undecided
     Assignee: Q.Tian (tianquan23)
         Status: New


** Tags: l3-ha

** Tags added: l3-ha

** Changed in: neutron
     Assignee: (unassigned) => Q.Tian (tianquan23)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1598422

Title:
  HA router is scheduled to imcompatible l3 agent

Status in neutron:
  New

Bug description:
  When router_auto_schedule is configured to true and l3 agent count of ha 
router don't reach max_l3_agents_per_router, auto_schedule_routers will 
schedule ha router to imcompatible l3 agent.
  This issue is because of that L3Scheduler don't check if l3 agent is 
compatible with the scheduling router like what it did in 
get_l3_agent_candidates. see 
https://github.com/openstack/neutron/blob/master/neutron/scheduler/l3_agent_scheduler.py#L313.
 

  How to reproduce:
  Scenario 1
  - legacy mode, three network nodes: host_1, host_2, host_3. Configure host_3 
with handle_internal_only_routers = false.
  - create a ha router router-A, ensure that router-A is only hosted by host_1 
and host_2.
  - restart l3 agent on host_3, then router-A is hosted by three agents, 
including agent on host_3.

  Scenario 2
  - dvr mode, two network nodes: host_1 and host_2 are configured to dvr_snat, 
one compute node: host_3 is configured to dvr.
  - create a ha router router-A, ensure that router-A is only hosted by host_1 
and host_2.
  - restart l3 agent on host_3, then router-A is hosted by three agents, 
including agent on host_3.

  Expected behavior:
  - auto_schedule_routers() and schedule() in L3Scheduler should choose 
candidates with consistent standards. ha router shouldn't be scheduled to 
imcompatible agent after auto_schedule_routers.

  Affected versions:
  - I saw this issue in Kilo, and reproduced it in master branch. I guess 
liberty and mitaka are affected also.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1598422/+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

Reply via email to