0

I've tried to install a Openstack cluster. After completing Keystone,Nova, I got an issue with Neutron-Server in Database sync-up step as below.

root@controller:/etc/neutron# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
>   --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
  Running upgrade for neutron ...
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 63fd95af7dcd -> c613d0b82681
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 581, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 165, in execute
    result = self._query(query)
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 321, in _query
    conn.query(q)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 860, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1061, in _read_query_result
    result.read()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1349, in read
    first_packet = self.connection._read_packet()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1018, in _read_packet
    packet.check_error()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 384, in check_error
    err.raise_mysql_exception(self._data)
  File "/usr/lib/python3/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.InternalError: (1832, "Cannot change column 'network_id': used in a foreign key constraint 'subnets_ibfk_1'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/bin/neutron-db-manage", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python3/dist-packages/neutron/db/migration/cli.py", line 658, in main
    return_val |= bool(CONF.command.func(config, CONF.command.name))
  File "/usr/lib/python3/dist-packages/neutron/db/migration/cli.py", line 182, in do_upgrade
    desc=branch, sql=CONF.command.sql)
  File "/usr/lib/python3/dist-packages/neutron/db/migration/cli.py", line 83, in do_alembic_command
    getattr(alembic_command, cmd)(config, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/alembic/command.py", line 279, in upgrade
    script.run_env()
  File "/usr/lib/python3/dist-packages/alembic/script/base.py", line 475, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/usr/lib/python3/dist-packages/alembic/util/pyfiles.py", line 98, in load_python_file
    module = load_module_py(module_id, path)
  File "/usr/lib/python3/dist-packages/alembic/util/compat.py", line 174, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/neutron/db/migration/alembic_migrations/env.py", line 120, in <module>
    run_migrations_online()
  File "/usr/lib/python3/dist-packages/neutron/db/migration/alembic_migrations/env.py", line 114, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/usr/lib/python3/dist-packages/alembic/runtime/environment.py", line 846, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/usr/lib/python3/dist-packages/alembic/runtime/migration.py", line 365, in run_migrations
    step.migration_fn(**kw)
  File "/usr/lib/python3/dist-packages/neutron/db/migration/alembic_migrations/versions/train/expand/c613d0b82681_subnet_force_network_id.py", line 40, in upgrade
    existing_type=sa.String(36))
  File "<string>", line 8, in alter_column
  File "<string>", line 3, in alter_column
  File "/usr/lib/python3/dist-packages/alembic/operations/ops.py", line 1775, in alter_column
    return operations.invoke(alt)
  File "/usr/lib/python3/dist-packages/alembic/operations/base.py", line 345, in invoke
    return fn(self, operation)
  File "/usr/lib/python3/dist-packages/alembic/operations/toimpl.py", line 56, in alter_column
    **operation.kw
  File "/usr/lib/python3/dist-packages/alembic/ddl/mysql.py", line 98, in alter_column
    else existing_comment,
  File "/usr/lib/python3/dist-packages/alembic/ddl/impl.py", line 134, in _exec
    return conn.execute(construct, *multiparams, **params)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 982, in execute
    return meth(self, multiparams, params)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/ddl.py", line 72, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1044, in _execute_ddl
    compiled,
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1250, in _execute_context
    e, statement, parameters, cursor, context
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1474, in _handle_dbapi_exception
    util.raise_from_cause(newraise, exc_info)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
    cursor, statement, parameters, context
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 581, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 165, in execute
    result = self._query(query)
  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 321, in _query
    conn.query(q)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 860, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1061, in _read_query_result
    result.read()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1349, in read
    first_packet = self.connection._read_packet()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1018, in _read_packet
    packet.check_error()
  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 384, in check_error
    err.raise_mysql_exception(self._data)
  File "/usr/lib/python3/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception
    raise errorclass(errno, errval)
oslo_db.exception.DBError: (pymysql.err.InternalError) (1832, "Cannot change column 'network_id': used in a foreign key constraint 'subnets_ibfk_1'")
[SQL: ALTER TABLE subnets MODIFY network_id VARCHAR(36) NOT NULL]
(Background on this error at: http://sqlalche.me/e/2j85)
root@controller:/etc/neutron# 

Then check neutron-server log, I saw that 'neutron.subnet_dns_publish_fixed_ips' table does not be created successully.

/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.146 5355 ERROR neutron.agent.dhcp.agent 
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent [req-fc8e970a-8bf9-485d-9716-85d76a0d60bc - - - - -] Unable to sync network state.: oslo_messaging.rpc.client.RemoteError: Remote error: ProgrammingError (pymysql.err.ProgrammingError) (1146, "Table 'neutron.subnet_dns_publish_fixed_ips' doesn't exist")
/var/log/neutron/neutron-dhcp-agent.log:(Background on this error at: http://sqlalche.me/e/f405)
/var/log/neutron/neutron-dhcp-agent.log:['Traceback (most recent call last):\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context\n    cursor, statement, parameters, context\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 581, in do_execute\n    cursor.execute(statement, parameters)\n', '  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 165, in execute\n    result = self._query(query)\n', '  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 321, in _query\n    conn.query(q)\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 860, in query\n    self._affected_rows = self._read_query_result(unbuffered=unbuffered)\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1061, in _read_query_result\n    result.read()\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1349, in read\n    first_packet = self.connection._read_packet()\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1018, in _read_packet\n    packet.check_error()\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 384, in check_error\n    err.raise_mysql_exception(self._data)\n', '  File "/usr/lib/python3/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception\n    raise errorclass(errno, errval)\n', 'pymysql.err.ProgrammingError: (1146, "Table \'neutron.subnet_dns_publish_fixed_ips\' doesn\'t exist")\n', '\nThe above exception was the direct cause of the following exception:\n\n', 'Traceback (most recent call last):\n', '  File "/usr/lib/python3/dist-packages/oslo_messaging/rpc/server.py", line 165, in _process_incoming\n    res = self.dispatcher.dispatch(message)\n', '  File "/usr/lib/python3/dist-packages/oslo_messaging/rpc/dispatcher.py", line 276, in dispatch\n    return self._do_dispatch(endpoint, method, ctxt, args)\n', '  File "/usr/lib/python3/dist-packages/oslo_messaging/rpc/dispatcher.py", line 196, in _do_dispatch\n    result = func(ctxt, **new_args)\n', '  File "/usr/lib/python3/dist-packages/neutron/api/rpc/handlers/dhcp_rpc.py", line 143, in get_active_networks_info\n    networks = self._get_active_networks(context, **kwargs)\n', '  File "/usr/lib/python3/dist-packages/neutron/api/rpc/handlers/dhcp_rpc.py", line 87, in _get_active_networks\n    plugin.auto_schedule_networks(context, host)\n', '  File "/usr/lib/python3/dist-packages/neutron/db/agentschedulers_db.py", line 492, in auto_schedule_networks\n    self.network_scheduler.auto_schedule_networks(self, context, host)\n', '  File "/usr/lib/python3/dist-packages/neutron/scheduler/dhcp_agent_scheduler.py", line 50, in auto_schedule_networks\n    subnets = plugin.get_subnets(context, fields=fields)\n', '  File "/usr/lib/python3/dist-packages/neutron_lib/db/api.py", line 233, in wrapped\n    return method(*args, **kwargs)\n', '  File "/usr/lib/python3/dist-packages/neutron/db/db_base_plugin_v2.py", line 1078, in get_subnets\n    marker, page_reverse)\n', '  File "/usr/lib/python3/dist-packages/neutron/db/db_base_plugin_common.py", line 320, in _get_subnets\n    **filters)\n', '  File "/usr/lib/python3/dist-packages/neutron/objects/base.py", line 640, in get_objects\n    cls, context, _pager=_pager, **cls.modify_fields_to_db(kwargs))\n', '  File "/usr/lib/python3/dist-packages/neutron/objects/db/api.py", line 52, in get_objects\n    **(_pager.to_kwargs(context, obj_cls) if _pager else {}))\n', '  File "/usr/lib/python3/dist-packages/neutron_lib/db/model_query.py", line 317, in get_collection\n    for c in query\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 3367, in __iter__\n    return self._execute_and_instances(context)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 3392, in _execute_and_instances\n    result = conn.execute(querycontext.statement, self._params)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 982, in execute\n    return meth(self, multiparams, params)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection\n    return connection._execute_clauseelement(self, multiparams, params)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1101, in _execute_clauseelement\n    distilled_params,\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1250, in _execute_context\n    e, statement, parameters, cursor, context\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1474, in _handle_dbapi_exception\n    util.raise_from_cause(newraise, exc_info)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause\n    reraise(type(exception), exception, tb=exc_tb, cause=cause)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 152, in reraise\n    raise value.with_traceback(tb)\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context\n    cursor, statement, parameters, context\n', '  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 581, in do_execute\n    cursor.execute(statement, parameters)\n', '  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 165, in execute\n    result = self._query(query)\n', '  File "/usr/lib/python3/dist-packages/pymysql/cursors.py", line 321, in _query\n    conn.query(q)\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 860, in query\n    self._affected_rows = self._read_query_result(unbuffered=unbuffered)\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1061, in _read_query_result\n    result.read()\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1349, in read\n    first_packet = self.connection._read_packet()\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 1018, in _read_packet\n    packet.check_error()\n', '  File "/usr/lib/python3/dist-packages/pymysql/connections.py", line 384, in check_error\n    err.raise_mysql_exception(self._data)\n', '  File "/usr/lib/python3/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception\n    raise errorclass(errno, errval)\n', 'sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table \'neutron.subnet_dns_publish_fixed_ips\' doesn\'t exist")\n[SQL: SELECT subnets.project_id AS subnets_project_id, subnets.id AS subnets_id, subnets.in_use AS subnets_in_use, subnets.name AS subnets_name, subnets.network_id AS subnets_network_id, subnets.segment_id AS subnets_segment_id, subnets.subnetpool_id AS subnets_subnetpool_id, subnets.ip_version AS subnets_ip_version, subnets.cidr AS subnets_cidr, subnets.gateway_ip AS subnets_gateway_ip, subnets.enable_dhcp AS subnets_enable_dhcp, subnets.ipv6_ra_mode AS subnets_ipv6_ra_mode, subnets.ipv6_address_mode AS subnets_ipv6_address_mode, subnets.standard_attr_id AS subnets_standard_attr_id, subnetpools_1.shared AS subnetpools_1_shared, standardattributes_1.id AS standardattributes_1_id, standardattributes_1.resource_type AS standardattributes_1_resource_type, standardattributes_1.description AS standardattributes_1_description, standardattributes_1.revision_number AS standardattributes_1_revision_number, standardattributes_1.created_at AS standardattributes_1_created_at, standardattributes_1.updated_at AS standardattributes_1_updated_at, subnetpools_1.project_id AS subnetpools_1_project_id, subnetpools_1.id AS subnetpools_1_id, subnetpools_1.name AS subnetpools_1_name, subnetpools_1.ip_version AS subnetpools_1_ip_version, subnetpools_1.default_prefixlen AS subnetpools_1_default_prefixlen, subnetpools_1.min_prefixlen AS subnetpools_1_min_prefixlen, subnetpools_1.max_prefixlen AS subnetpools_1_max_prefixlen, subnetpools_1.is_default AS subnetpools_1_is_default, subnetpools_1.default_quota AS subnetpools_1_default_quota, subnetpools_1.hash AS subnetpools_1_hash, subnetpools_1.address_scope_id AS subnetpools_1_address_scope_id, subnetpools_1.standard_attr_id AS subnetpools_1_standard_attr_id, standardattributes_2.id AS standardattributes_2_id, standardattributes_2.resource_type AS standardattributes_2_resource_type, standardattributes_2.description AS standardattributes_2_description, standardattributes_2.revision_number AS standardattributes_2_revision_number, standardattributes_2.created_at AS standardattributes_2_created_at, standardattributes_2.updated_at AS standardattributes_2_updated_at, subnet_dns_publish_fixed_ips_1.subnet_id AS subnet_dns_publish_fixed_ips_1_subnet_id, subnet_dns_publish_fixed_ips_1.dns_publish_fixed_ip AS subnet_dns_publish_fixed_ips_1_dns_publish_fixed_ip \nFROM subnets LEFT OUTER JOIN subnetpools AS subnetpools_1 ON subnets.subnetpool_id = subnetpools_1.id LEFT OUTER JOIN standardattributes AS standardattributes_1 ON standardattributes_1.id = subnetpools_1.standard_attr_id LEFT OUTER JOIN standardattributes AS standardattributes_2 ON standardattributes_2.id = subnets.standard_attr_id LEFT OUTER JOIN subnet_dns_publish_fixed_ips AS subnet_dns_publish_fixed_ips_1 ON subnets.id = subnet_dns_publish_fixed_ips_1.subnet_id]\n(Background on this error at: http://sqlalche.me/e/f405)\n'].
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent Traceback (most recent call last):
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/neutron/agent/dhcp/agent.py", line 266, in sync_state
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     enable_dhcp_filter=False)
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/neutron/agent/dhcp/agent.py", line 826, in get_active_networks_info
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     host=self.host, **kwargs)
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/neutron_lib/rpc.py", line 157, in call
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     return self._original_context.call(ctxt, method, **kwargs)
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/oslo_messaging/rpc/client.py", line 181, in call
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     transport_options=self.transport_options)
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/oslo_messaging/transport.py", line 129, in _send
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     transport_options=transport_options)
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 682, in send
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     transport_options=transport_options)
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent   File "/usr/lib/python3/dist-packages/oslo_messaging/_drivers/amqpdriver.py", line 672, in _send
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent     raise result
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent oslo_messaging.rpc.client.RemoteError: Remote error: ProgrammingError (pymysql.err.ProgrammingError) (1146, "Table '**neutron.subnet_dns_publish_fixed_ips**' doesn't exist")
/var/log/neutron/neutron-dhcp-agent.log:2022-06-06 12:41:30.169 5355 ERROR neutron.agent.dhcp.agent [SQL: SELECT subnets.project_id AS subnets_project_id, subnets.id AS subnets_id, subnets.in_use AS subnets_in_use, subnets.name AS subnets_name, subnets.network_id AS subnets_network_id, subnets.segment_id AS subnets_segment_id, subnets.subnetpool_id AS subnets_subnetpool_id, subnets.ip_version AS subnets_ip_version, subnets.cidr AS subnets_cidr, subnets.gateway_ip AS subnets_gateway_ip, subnets.enable_dhcp AS subnets_enable_dhcp, subnets.ipv6_ra_mode AS subnets_ipv6_ra_mode, subnets.ipv6_address_mode AS subnets_ipv6_address_mode, subnets.standard_attr_id AS subnets_standard_attr_id, subnetpools_1.shared AS subnetpools_1_shared, standardattributes_1.id AS standardattributes_1_id, standardattributes_1.resource_type AS standardattributes_1_resource_type, standardattributes_1.description AS standardattributes_1_description, standardattributes_1.revision_number AS standardattributes_1_revision_number, standardattributes_1.created_at AS standardattributes_1_cre^C
root@controller:/etc/neutron# 

Please help me advise this case. Thanks.

hungpq
  • 1

1 Answers1

0

I've found issue. It belonged to MariaDB 10.1 which had a bug. So the problems was resolved after upgrading to 10.6 as below guide.

https://computingforgeeks.com/install-mariadb-on-ubuntu-and-centos/

Note: maybe you need to delete Neutron DB then sync up again.

hungpq
  • 1