Release OpenStack - Yoga
OS Ubuntu 20.04
DB PostgreSQL 14
Package:
dpkg -l | grep neutr
ii neutron-common 2:20.2.0-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - common
ii neutron-dynamic-routing-common 2:20.0.0-0ubuntu1~cloud0 all OpenStack Neutron Dynamic Routing - common files
ii neutron-fwaas-common 1:16.0.0+git2022033113.de8a4d4cf-0ubuntu1~cloud0 all Firewall-as-a-Service driver for OpenStack Neutron
ii neutron-plugin-ml2 2:20.2.0-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - ML2 plugin
ii neutron-server 2:20.2.0-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - server
ii python3-neutron 2:20.2.0-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - Python library
ii python3-neutron-dynamic-routing 2:20.0.0-0ubuntu1~cloud0 all OpenStack Neutron Dynamic Routing - Python 3 library
ii python3-neutron-fwaas 1:16.0.0+git2022033113.de8a4d4cf-0ubuntu1~cloud0 all Firewall-as-a-Service driver for OpenStack Neutron
ii python3-neutron-lib 2.20.0-0ubuntu1~cloud0 all Neutron shared routines and utilities - Python 3.x
ii python3-neutronclient 1:7.8.0-0ubuntu1~cloud0 all client API library for Neutron - Python 3.x
Error in logs neutron-server:
2022-12-19 14:39:52.757 5007 WARNING oslo_db.sqlalchemy.exc_filters [req-f64b9016-945f-4bf1-aa43-89be877258fb 0855c4c3587b42959ecf2436d60826c0 e8a458c8de124595ae5ff93e38f41069 -
default default] DBAPIError exception wrapped.: psycopg2.errors.UndefinedFunction: operator does not exist: character varying = text[]
LINE 3: WHERE bgp_speaker_network_bindings.network_id = ARRAY['06b0e...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters Traceback (most recent call last):
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters self.dialect.do_execute(
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters cursor.execute(statement, parameters)
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters psycopg2.errors.UndefinedFunction: operator does not exist: character varying = text[]
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters LINE 3: WHERE bgp_speaker_network_bindings.network_id = ARRAY['06b0e...
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters ^
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters
2022-12-19 14:39:52.757 5007 ERROR oslo_db.sqlalchemy.exc_filters
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager [req-f64b9016-945f-4bf1-aa43-89be877258fb 0855c4c3587b42959ecf2436d60826c0 e8a458c8de124595ae5ff93e38f41069 - def
ault default] Error during notification for neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin.port_callback-130537 port, after_update: oslo_db.exception.DBError: (psycopg
2.errors.UndefinedFunction) operator does not exist: character varying = text[]
LINE 3: WHERE bgp_speaker_network_bindings.network_id = ARRAY['06b0e...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
[SQL: SELECT bgp_speaker_network_bindings.bgp_speaker_id AS bgp_speaker_network_bindings_bgp_speaker_id
FROM bgp_speaker_network_bindings
WHERE bgp_speaker_network_bindings.network_id = %(network_id_1)s]
[parameters: {'network_id_1': ['06b0e583-64c8-450e-a506-8a1cf2c02f7e']}]
(Background on this error at: https://sqlalche.me/e/14/f405)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager Traceback (most recent call last):
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager self.dialect.do_execute(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager cursor.execute(statement, parameters)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager psycopg2.errors.UndefinedFunction: operator does not exist: character varying = text[]
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager LINE 3: WHERE bgp_speaker_network_bindings.network_id = ARRAY['06b0e...
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager ^
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager The above exception was the direct cause of the following exception:
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager Traceback (most recent call last):
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/neutron_lib/callbacks/manager.py", line 181, in _notify_loop
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager callback(resource, event, trigger, payload=payload)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 377, in port_cal
lback
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager self._get_bgp_speaker_ids_by_binding_network(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/neutron_dynamic_routing/db/bgp_db.py", line 312, in _get_bgp_speaker_ids_b
y_binding_network
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager return query.all()
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2759, in all
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager return self._iter().all()
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2894, in _iter
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager result = self.session.execute(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/orm/session.py", line 1692, in execute
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager result = conn._execute_20(statement, params or {}, execution_options)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1614, in _execute_20
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager return meth(self, args_10style, kwargs_10style, execution_options)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager return connection._execute_clauseelement(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1481, in _execute_clauseelement
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager ret = self._execute_context(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager self._handle_dbapi_exception(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2024, in _handle_dbapi_exception
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager util.raise_(newraise, with_traceback=exc_info[2], from_=e)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager raise exception
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager self.dialect.do_execute(
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager cursor.execute(statement, parameters)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager oslo_db.exception.DBError: (psycopg2.errors.UndefinedFunction) operator does not exist: character varying = text[
]
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager LINE 3: WHERE bgp_speaker_network_bindings.network_id = ARRAY['06b0e...
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager ^
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager [SQL: SELECT bgp_speaker_network_bindings.bgp_speaker_id AS bgp_speaker_network_bindings_bgp_speaker_id
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager FROM bgp_speaker_network_bindings
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager WHERE bgp_speaker_network_bindings.network_id = %(network_id_1)s]
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager [parameters: {'network_id_1': ['06b0e583-64c8-450e-a506-8a1cf2c02f7e']}]
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager (Background on this error at: https://sqlalche.me/e/14/f405)
2022-12-19 14:39:52.758 5007 ERROR neutron_lib.callbacks.manager
Error in DB log:
2022-12-19 14:39:52.755 MSK [47072] neutron@neutron ERROR: operator does not exist: character varying = text[] at character 181
2022-12-19 14:39:52.755 MSK [47072] neutron@neutron HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
2022-12-19 14:39:52.755 MSK [47072] neutron@neutron STATEMENT: SELECT bgp_speaker_network_bindings.bgp_speaker_id AS bgp_speaker_network_bindings_bgp_speaker_id
FROM bgp_speaker_network_bindings
WHERE bgp_speaker_network_bindings.network_id = ARRAY['06b0e583-64c8-450e-a506-8a1cf2c02f7e']
Workaround or solution:
--- /usr/lib/python3/dist-packages/neutron_dynamic_routing/services/bgp/bgp_plugin.py 2022-03-30 14:52:09.000000000 +0300
+++ bgp_plugin.py 2022-12-19 15:44:26.886372121 +0300
@@ -375,7 +375,7 @@
for ext_net in ext_nets:
bgp_speakers = (
self._get_bgp_speaker_ids_by_binding_network(
- ctx, ext_nets))
+ ctx, ext_net))
# Refresh any affected BGP speakers
for bgp_speaker in bgp_speakers:
So the main issue here is that we (as in the OpenStack charms team) haven't actually released a neutron- dynamic- routing charm that supports zed, yoga and 2023.1. This is something we need to rectify.
However, the issue within the bug report looks like either a packaging dependency issue (e.g. mismatched dependencies in libraries), around what pyscopg2 supports, vs sqlaclchemy, etc. This will coming out (hopefully) in testing the newer versions.