← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1598422] [NEW] HA router is scheduled to imcompatible l3 agent

 

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


Follow ups