← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2124269] [NEW] Can't bind an HA router_gateway port to chassis

 

Public bug reported:

Running Openstack 2024.1 "Caracal" on Ubuntu Jammy deployed with FCE
(MaaS 3.6, Juju 3.6) and OVN 24.03, we're facing an issue when using
private network+FIP based tenants.

When creating such tenant, we need to create a router with a gateway subnet.
When this object is created we see these error messages in neutron logs :


==============================================================================================
2025-09-17 12:04:57.099 4411 INFO neutron.db.ovn_revision_numbers_db [None req-dc2f485e-6938-4c4c-a776-91cb1578809d 3d1d518e2e534286a94a3ad73e9ec00a 900e2c26f77041d19163704cbd8243f9 - - 6b4f95d250fe4dd08b9a4c23e61cce88 6b4f95d250fe4dd08b9a4c23e61cce88] Successfully bumped revision number for resource 0626d085-bfb4-4019-8ff5-b8dd8259bf0d (type: ports) to 2
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command [None req-541af44e-4c9f-4e19-88ff-b777bf201710 - - - - - -] Error executing command (DbGetCommand): ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command Traceback (most recent call last):
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 47, in execute
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     self.run_idl(None)
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 235, in run_idl
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     record = self.api.lookup(self.table, self.record)
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 184, in lookup
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     return self._lookup(table, record)
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 235, in _lookup
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     row = idlutils.row_by_value(self, rl.table, rl.column, record)
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 114, in row_by_value
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     raise RowNotFound(table=table, col=column, match=match)
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command 
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager [None req-541af44e-4c9f-4e19-88ff-b777bf201710 - - - - - -] Error during notification for neutron.services.ovn_l3.plugin.OVNL3RouterPlugin._port_update-8663864275972 port, after_update: ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager Traceback (most recent call last):
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron_lib/callbacks/manager.py", line 189, in _notify_loop
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     callback.method(resource, event, trigger, payload=payload)
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron/services/ovn_l3/plugin.py", line 391, in _port_update
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     l3plugin._ovn_client.update_router_port(context,
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1866, in update_router_port
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     self._update_lrouter_port(context, port, if_exists=if_exists,
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1843, in _update_lrouter_port
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     external_ids = self._nb_idl.db_get(
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 47, in execute
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     self.run_idl(None)
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 235, in run_idl
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     record = self.api.lookup(self.table, self.record)
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 184, in lookup
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     return self._lookup(table, record)
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 235, in _lookup
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     row = idlutils.row_by_value(self, rl.table, rl.column, record)
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 114, in row_by_value
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     raise RowNotFound(table=table, col=column, match=match)
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager 
2025-09-17 12:04:57.142 4412 WARNING neutron_lib.context [None req-142f99a3-4935-48fc-8286-6d8d19d1fba8 6e3294ba50944dd7b489d144d2f652ec 8933ba1c7be94c51b89d44e2843592c8 - - 6b4f95d250fe4dd08b9a4c23e61cce88 6b4f95d250fe4dd08b9a4c23e61cce88] Method 'is_advsvc' is deprecated since 2023.2 release (neutron-lib 3.8.0) and will be removed once support for the old RBAC API policies will be removed from Neutron. Please use method 'is_service_role' instead.
2025-09-17 12:04:57.206 4411 INFO neutron.db.ovn_revision_numbers_db [None req-dc2f485e-6938-4c4c-a776-91cb1578809d 3d1d518e2e534286a94a3ad73e9ec00a 900e2c26f77041d19163704cbd8243f9 - - 6b4f95d250fe4dd08b9a4c23e61cce88 6b4f95d250fe4dd08b9a4c23e61cce88] Successfully bum
==============================================================================================


VMs are created sucessfully and private network works as expected, VMs talk to each other on the private network, private gateway is also reachable.

However, traffic don't go through FIP gateway, VMs are not accessible
through their FIP and they can't talk outside the private network.


We have a test project with a private network and we had the same issue
and we found out that we were missing a HA_Chassis_Group in the OVN NB
database. As a manual workaround, we needed to apply those commands :

==============================================================================================
# 4cfa62ce-ba4b-4d9d-a1db-4133e962b542 is the port associated to the router gateway

sudo ovn-nbctl lrp-set-ha-chassis-group lrp-4cfa62ce-
ba4b-4d9d-a1db-4133e962b542 hcg-fip

HCG=$(sudo ovn-nbctl --db=unix:/var/run/ovn/ovnnb_db.sock --bare
--columns=_uuid  find HA_Chassis_Group name=hcg-fip)

sudo ovn-nbctl --db=unix:/var/run/ovn/ovnnb_db.sock   set Logical_Router_Port lrp-4cfa62ce-ba4b-4d9d-a1db-4133e962b542 ha_chassis_group=$HCG
==============================================================================================

Once this was applied, our test VMs were reachable through their FIP.

** Affects: neutron
     Importance: Undecided
         Status: New

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

Title:
  Can't bind an HA router_gateway port to chassis

Status in neutron:
  New

Bug description:
  Running Openstack 2024.1 "Caracal" on Ubuntu Jammy deployed with FCE
  (MaaS 3.6, Juju 3.6) and OVN 24.03, we're facing an issue when using
  private network+FIP based tenants.

  When creating such tenant, we need to create a router with a gateway subnet.
  When this object is created we see these error messages in neutron logs :

  
  ==============================================================================================
  2025-09-17 12:04:57.099 4411 INFO neutron.db.ovn_revision_numbers_db [None req-dc2f485e-6938-4c4c-a776-91cb1578809d 3d1d518e2e534286a94a3ad73e9ec00a 900e2c26f77041d19163704cbd8243f9 - - 6b4f95d250fe4dd08b9a4c23e61cce88 6b4f95d250fe4dd08b9a4c23e61cce88] Successfully bumped revision number for resource 0626d085-bfb4-4019-8ff5-b8dd8259bf0d (type: ports) to 2
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command [None req-541af44e-4c9f-4e19-88ff-b777bf201710 - - - - - -] Error executing command (DbGetCommand): ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command Traceback (most recent call last):
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 47, in execute
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     self.run_idl(None)
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 235, in run_idl
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     record = self.api.lookup(self.table, self.record)
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 184, in lookup
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     return self._lookup(table, record)
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 235, in _lookup
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     row = idlutils.row_by_value(self, rl.table, rl.column, record)
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 114, in row_by_value
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command     raise RowNotFound(table=table, col=column, match=match)
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
  2025-09-17 12:04:57.110 4413 ERROR ovsdbapp.backend.ovs_idl.command 
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager [None req-541af44e-4c9f-4e19-88ff-b777bf201710 - - - - - -] Error during notification for neutron.services.ovn_l3.plugin.OVNL3RouterPlugin._port_update-8663864275972 port, after_update: ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager Traceback (most recent call last):
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron_lib/callbacks/manager.py", line 189, in _notify_loop
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     callback.method(resource, event, trigger, payload=payload)
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron/services/ovn_l3/plugin.py", line 391, in _port_update
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     l3plugin._ovn_client.update_router_port(context,
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1866, in update_router_port
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     self._update_lrouter_port(context, port, if_exists=if_exists,
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1843, in _update_lrouter_port
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     external_ids = self._nb_idl.db_get(
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 47, in execute
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     self.run_idl(None)
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/command.py", line 235, in run_idl
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     record = self.api.lookup(self.table, self.record)
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 184, in lookup
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     return self._lookup(table, record)
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 235, in _lookup
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     row = idlutils.row_by_value(self, rl.table, rl.column, record)
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager   File "/usr/lib/python3/dist-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 114, in row_by_value
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager     raise RowNotFound(table=table, col=column, match=match)
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Logical_Router_Port with name=lrp-e9c93a54-539e-4f1e-97b5-be16943c7c6f
  2025-09-17 12:04:57.111 4413 ERROR neutron_lib.callbacks.manager 
  2025-09-17 12:04:57.142 4412 WARNING neutron_lib.context [None req-142f99a3-4935-48fc-8286-6d8d19d1fba8 6e3294ba50944dd7b489d144d2f652ec 8933ba1c7be94c51b89d44e2843592c8 - - 6b4f95d250fe4dd08b9a4c23e61cce88 6b4f95d250fe4dd08b9a4c23e61cce88] Method 'is_advsvc' is deprecated since 2023.2 release (neutron-lib 3.8.0) and will be removed once support for the old RBAC API policies will be removed from Neutron. Please use method 'is_service_role' instead.
  2025-09-17 12:04:57.206 4411 INFO neutron.db.ovn_revision_numbers_db [None req-dc2f485e-6938-4c4c-a776-91cb1578809d 3d1d518e2e534286a94a3ad73e9ec00a 900e2c26f77041d19163704cbd8243f9 - - 6b4f95d250fe4dd08b9a4c23e61cce88 6b4f95d250fe4dd08b9a4c23e61cce88] Successfully bum
  ==============================================================================================

  
  VMs are created sucessfully and private network works as expected, VMs talk to each other on the private network, private gateway is also reachable.

  However, traffic don't go through FIP gateway, VMs are not accessible
  through their FIP and they can't talk outside the private network.


  We have a test project with a private network and we had the same
  issue and we found out that we were missing a HA_Chassis_Group in the
  OVN NB database. As a manual workaround, we needed to apply those
  commands :

  ==============================================================================================
  # 4cfa62ce-ba4b-4d9d-a1db-4133e962b542 is the port associated to the router gateway

  sudo ovn-nbctl lrp-set-ha-chassis-group lrp-4cfa62ce-
  ba4b-4d9d-a1db-4133e962b542 hcg-fip

  HCG=$(sudo ovn-nbctl --db=unix:/var/run/ovn/ovnnb_db.sock --bare
  --columns=_uuid  find HA_Chassis_Group name=hcg-fip)

  sudo ovn-nbctl --db=unix:/var/run/ovn/ovnnb_db.sock   set Logical_Router_Port lrp-4cfa62ce-ba4b-4d9d-a1db-4133e962b542 ha_chassis_group=$HCG
  ==============================================================================================

  Once this was applied, our test VMs were reachable through their FIP.

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