No fdb entries added when failover dhcp and l3 agent together
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
venkata anil | ||
Kilo |
Fix Released
|
Undecided
|
Unassigned | ||
neutron (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Trusty |
Fix Released
|
Medium
|
Xiang Hui |
Bug Description
[Env]
OpenStack: icehouse
OS: ubuntu
enable l2 population
enable gre tunnel
[Description]
If the dhcp and l3 agent on the same host, then after this host is down, then there will be a probability that scheduled to other same host, then sometimes the ovs tunnel can't be created on the new scheduled host.
[Root cause]
After debugging, we found below log:
2015-01-14 13:44:18.284 9815 INFO neutron.
s_v2.Port[object at 7f8d706a3650] {tenant_
_id=u'12ee7040-
af6e-5f44-
a37d0] {tenant_
68-67509ebb8eda', mac_address=
evice_owner=
Above shows there will be a probability that two ACTIVE ports shows up in db together, but from l2 pop mech_driver:
"
if agent_active_ports == 1 or (
"
only in above condition the fdb entry will be added and notified to agent, so failures are pop up.
-------
[Impact]
This patch addresses an issue on neutron(
[Test Case]
Deploy an OpenStack cloud w/ trusty-icehouse with neutron HA, doing failover tests on network nodes, there will be a high certain rate that this issue happened.
[Regression Potential]
None.
Related branches
Changed in neutron: | |
assignee: | nobody → venkata anil (anil-venkata) |
tags: | added: l2-pop |
Changed in neutron: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in neutron: | |
status: | Confirmed → In Progress |
Changed in neutron: | |
milestone: | none → liberty-3 |
status: | Fix Committed → Fix Released |
tags: | added: juno-backport-potential kilo-backport-potential |
Changed in neutron: | |
milestone: | liberty-3 → 7.0.0 |
Changed in neutron (Ubuntu): | |
status: | New → Invalid |
Changed in neutron (Ubuntu): | |
status: | Invalid → Fix Released |
Changed in neutron (Ubuntu Trusty): | |
importance: | Undecided → Medium |
Changed in neutron (Ubuntu): | |
importance: | Undecided → Medium |
tags: |
added: verification-done removed: verification-needed |
I see the issue, when dhcp port is first created and then the router port created on the new host.
In this case, when dhcp port is first created, it has to create tunnel port also. But it is not doing that -
When a dhcp server is moved new host,
1) network-hostagent binding is updated(properly i.e with new host).
2) dhcp port-hostagent binding is not updated( dhcp port is still bound to old host)
If dhcp port-bound agent is different from the new dhcp agent(which is now taking care of this dhcp port), neutron plugin won't notify the l2pop, and hence tunnel is not created.
def update_ device_ up(self, rpc_context, **kwargs): port_bound_ to_host( rpc_context,
port_ id, host)):
LOG. debug(" Device %(device)s not bound to the"
" agent host %(host)s",
{'device' : device, 'host': host})
if (host and not plugin.
return
So, the root cause is - issue with dhcp and not l2pop(l2pop conditions are fine).