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 <[email protected]> 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 -- 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

