← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2050236] Re: Automatic L3 Agent Failover does not work for HA Routers

 

Reviewed:  https://review.opendev.org/c/openstack/neutron/+/908434
Committed: https://opendev.org/openstack/neutron/commit/fa28c3c35cc7ae5b25441d3d83bf78f00a54f477
Submitter: "Zuul (22348)"
Branch:    master

commit fa28c3c35cc7ae5b25441d3d83bf78f00a54f477
Author: Christian Rohmann <christian.rohmann@xxxxxxxxx>
Date:   Thu Feb 8 15:27:18 2024 +0100

    Allow HA routers to have automatic l3agent failover
    
    Currently routers with ha=true are NOT rescheduled form a dead L3 agent, even
    when `allow_automatic_l3agent_failover` is enabled.
    
    This is contrary to what the user expects and the feature description states:
       "Automatically reschedule routers from offline
        L3 agents to online L3 agents."
    
    There is no distinction made between HA and non-HA routers. Also HA and
    automatic-failover can work together:
    
    * HA allows for a fast failover to a standby router
    
    * Automatic failover then restores back full redundancy in case the failed L3
    agent, which HA failed away from, does not come back within a certain time.
    
    Closes-Bug: #2050236
    Change-Id: I1e5ee5048f61eef7fa4d9de25e69bf0e0a5ea442


** 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/2050236

Title:
  Automatic L3 Agent Failover does not work for HA Routers

Status in neutron:
  Fix Released

Bug description:
  When enabling allow_automatic_l3agent_failover in the neutron config,
  neutron does not automatically reschedule routers with the HA
  parameter.

  In
  https://github.com/openstack/neutron/blob/master/neutron/db/agentschedulers_db.py#L131,
  neutron loads all downed agents into the down_bindings list and then
  iterates over it.

  This list gets populated in this method:
  https://github.com/openstack/neutron/blob/master/neutron/objects/l3agent.py#L55

  Here, a SQL query gets generated that specifically excludes routers
  that have the HA-parameter  (l3_attrs.RouterExtraAttributes.ha) set to
  something other than false or NULL.

  This behavior has always been the case and got introduced in
  https://github.com/openstack/neutron/commit/7e51f2aea517e1431b9a860c45761c057710f5b2#diff-c1382d923846002c27484cca55e555689da1e08c22f1f8a0343726fd881e86ce.

  Is there a specific reason for why HA routers get excluded? If not,
  this conditional in the SQL statement can be removed.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2050236/+subscriptions



References