SQLAlchemy 2.0: octavia-db-manage fails with "TypeError: Additional arguments should be named <dialectname>_<argument>, got 'autoload'"

Bug #2061303 reported by Takashi Kajinami
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
octavia
Fix Released
Undecided
Takashi Kajinami

Bug Description

In the attempt to bump sqlalchemy to 2.0[1] it was caught that octavia-manage command fails with the traceback dumped below.

[1] https://review.opendev.org/c/openstack/requirements/+/879743

https://zuul.opendev.org/t/openstack/build/77653d12aac244368428f188081db0fa
```
2024-04-12 11:04:49.332750 | controller | CRITICAL octavia-db-manage Unhandled error: TypeError: Additional arguments should be named <dialectname>_<argument>, got 'autoload'
2024-04-12 11:04:49.332785 | controller | ERROR octavia-db-manage Traceback (most recent call last):
2024-04-12 11:04:49.332803 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/bin/octavia-db-manage", line 10, in <module>
2024-04-12 11:04:49.332816 | controller | ERROR octavia-db-manage sys.exit(main())
...
2024-04-12 11:04:49.333229 | controller | ERROR octavia-db-manage File "/opt/stack/octavia/octavia/db/migration/alembic_migrations/versions/3b199c848b96_create_no_monitor_operational_status.py", line 33, in upgrade
2024-04-12 11:04:49.333240 | controller | ERROR octavia-db-manage sa.Table('operating_status', md, autoload=True, autoload_with=bind)
2024-04-12 11:04:49.333295 | controller | ERROR octavia-db-manage File "<string>", line 2, in __new__
2024-04-12 11:04:49.333307 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line 281, in warned
2024-04-12 11:04:49.333319 | controller | ERROR octavia-db-manage return fn(*args, **kwargs) # type: ignore[no-any-return]
2024-04-12 11:04:49.333330 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/sql/schema.py", line 431, in __new__
2024-04-12 11:04:49.333345 | controller | ERROR octavia-db-manage return cls._new(*args, **kw)
2024-04-12 11:04:49.333359 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/sql/schema.py", line 485, in _new
2024-04-12 11:04:49.333370 | controller | ERROR octavia-db-manage with util.safe_reraise():
2024-04-12 11:04:49.333382 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
2024-04-12 11:04:49.333393 | controller | ERROR octavia-db-manage raise exc_value.with_traceback(exc_tb)
2024-04-12 11:04:49.333404 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/sql/schema.py", line 481, in _new
2024-04-12 11:04:49.333416 | controller | ERROR octavia-db-manage table.__init__(name, metadata, *args, _no_init=False, **kw)
2024-04-12 11:04:49.333427 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/sql/schema.py", line 855, in __init__
2024-04-12 11:04:49.333440 | controller | ERROR octavia-db-manage self._extra_kwargs(**kw)
2024-04-12 11:04:49.516191 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/sql/schema.py", line 1003, in _extra_kwargs
2024-04-12 11:04:49.516232 | controller | ERROR octavia-db-manage self._validate_dialect_kwargs(kwargs)
2024-04-12 11:04:49.516247 | controller | ERROR octavia-db-manage File "/opt/stack/data/venv/lib/python3.10/site-packages/sqlalchemy/sql/base.py", line 596, in _validate_dialect_kwargs
2024-04-12 11:04:49.516283 | controller | ERROR octavia-db-manage raise TypeError(
2024-04-12 11:04:49.516296 | controller | ERROR octavia-db-manage TypeError: Additional arguments should be named <dialectname>_<argument>, got 'autoload'
```

Changed in octavia:
assignee: nobody → Takashi Kajinami (kajinamit)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to octavia (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/octavia/+/915772

Changed in octavia:
status: New → In Progress
description: updated
summary: - SQLAlchemy 2.0: octavia-manage fails with "TypeError: Additional
+ SQLAlchemy 2.0: octavia-db-manage fails with "TypeError: Additional
arguments should be named <dialectname>_<argument>, got 'autoload'"
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to octavia (master)

Reviewed: https://review.opendev.org/c/openstack/octavia/+/915772
Committed: https://opendev.org/openstack/octavia/commit/d0c29009e68a28f46b5ac962449746ca87011fa3
Submitter: "Zuul (22348)"
Branch: master

commit d0c29009e68a28f46b5ac962449746ca87011fa3
Author: Takashi Kajinami <email address hidden>
Date: Mon Apr 15 02:14:32 2024 +0900

    SQLAlchemy 2.0: Drop use of removed autoload

    The autoload arugment was removed[1] in SQLAlchemy and only
    the autoload_with argument should be passed.

    The autoload argument is set according to the autoload_with argument
    automatically even in SQLAlchemy 1.x[2] so is not at all needed.

    [1] https://github.com/sqlalchemy/sqlalchemy/commit/c932123bacad9bf047d160b85e3f95d396c513ae
    [2] https://github.com/sqlalchemy/sqlalchemy/commit/ad8f921e969b6f735dc8e08d882c961dde78f2b1

    Closes-Bug: #2061303
    Change-Id: Ic18044b8065d2350c180ad26f5307a77aa99037b

Changed in octavia:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.