← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1776255] [NEW] DVR scheduling checks wrong port binding profile for host in live-migration

 

Public bug reported:

When live-migrating, active l3 agents on compute nodes will request a
router sync against DVR routers impacted by the migration. This will
check for existence of dvr serviceable ports on host to further filter
the router applicable to it. However, the current implementation
performs a "contains" operation on the port binding profile for host
which will produce a LIKE expression that tests against a match for the
middle of a string value: column LIKE '%' || <host> || '%' [1]. This
leads to a wrong filtering due to the sub-string match (i.e. compute-1
will match compute-10).

[1]
http://docs.sqlalchemy.org/en/latest/orm/internals.html?highlight=contains#sqlalchemy.orm.attributes.QueryableAttribute.contains

Example binding profile (dict) for host:
{
  "binding:profile": {"migrating_to": "compute-1"}
}

** Affects: neutron
     Importance: Undecided
     Assignee: Kailun Qin (kailun.qin)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Kailun Qin (kailun.qin)

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

Title:
  DVR scheduling checks wrong port binding profile for host in live-
  migration

Status in neutron:
  New

Bug description:
  When live-migrating, active l3 agents on compute nodes will request a
  router sync against DVR routers impacted by the migration. This will
  check for existence of dvr serviceable ports on host to further filter
  the router applicable to it. However, the current implementation
  performs a "contains" operation on the port binding profile for host
  which will produce a LIKE expression that tests against a match for
  the middle of a string value: column LIKE '%' || <host> || '%' [1].
  This leads to a wrong filtering due to the sub-string match (i.e.
  compute-1 will match compute-10).

  [1]
  http://docs.sqlalchemy.org/en/latest/orm/internals.html?highlight=contains#sqlalchemy.orm.attributes.QueryableAttribute.contains

  Example binding profile (dict) for host:
  {
    "binding:profile": {"migrating_to": "compute-1"}
  }

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


Follow ups