← Back to team overview

yahoo-eng-team team mailing list archive

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

 

Reviewed:  https://review.openstack.org/336791
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=9f30df85fe78d830331a43fa29fc2d83708c861d
Submitter: Jenkins
Branch:    master

commit 9f30df85fe78d830331a43fa29fc2d83708c861d
Author: tianquan <tianquan@xxxxxxxxxx>
Date:   Sat Jul 2 20:13:13 2016 +0800

    Check compatibility when auto schedule ha routers
    
    When l3 agents do fullsync, the server configured router_auto_schedule
    will schedule ha routers whose l3 agent count don't reach
    max_l3_agents_per_router to the agent. Need to check compatibility
    before binding.
    
    Change-Id: Ie9869eae2bd01c19da5820b4e7ecb7cba7b5692a
    Closes-Bug: 1598422


** Changed in: neutron
       Status: In Progress => 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/1598422

Title:
  HA router is scheduled to imcompatible l3 agent

Status in neutron:
  Fix Released

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


References