← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2126646] [NEW] cannot list ports on "create instance" when a network has trunk ports

 

Public bug reported:

After upgrade from 2024.1 to 2024.2 on the "launch instance" page inside
horizon it is not possible to list ports anymore when one network has
trunk ports.

It will complain with an error window on top right saying "cannot access
ports", in the horizon error log i see this:

2025-10-02 11:39:05.333684 /var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/rest/neutron.py:142: UnhashableKeyWarning: The key of openstack_dashboard.api.neutron port_list_with_trunk_types is not hashable and cannot be memoized: ((<weakref at 0x7f213ac8cdb0; to 'WSGIRequest' at 0x7f213abe2cd0>,), (('network_id', 'df1c15c5-6346-4b93-a94d-94c45bfc3fa6'),))
2025-10-02 11:39:05.333739
2025-10-02 11:39:05.333748   result = api.neutron.port_list_with_trunk_types(request,
2025-10-02 11:39:06.478829 error invoking apiclient
2025-10-02 11:39:06.478885 Traceback (most recent call last):
2025-10-02 11:39:06.478896   File "/var/lib/kolla/venv/lib/python3.11/site-packages/horizon/utils/memoized.py", line 107, in wrapped
2025-10-02 11:39:06.478902     value = cache[key] = cache.pop(key)
2025-10-02 11:39:06.478907                          ^^^^^^^^^^^^^^
2025-10-02 11:39:06.478914 KeyError: ((<weakref at 0x7f213ac8cdb0; to 'WSGIRequest' at 0x7f213abe2cd0>,), (('network_id', 'df1c15c5-6346-4b93-a94d-94c45bfc3fa6'),))
2025-10-02 11:39:06.478920
2025-10-02 11:39:06.478926 During handling of the above exception, another exception occurred:
2025-10-02 11:39:06.478932
2025-10-02 11:39:06.478936 Traceback (most recent call last):
2025-10-02 11:39:06.478941   File "/var/lib/kolla/venv/lib/python3.11/site-packages/horizon/utils/memoized.py", line 109, in wrapped
2025-10-02 11:39:06.478948     value = cache[key] = func(*args, **kwargs)
2025-10-02 11:39:06.478954                          ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.478960   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 1878, in port_list_with_trunk_types
2025-10-02 11:39:06.478965     return [_get_port_info(p) for p in ports]
2025-10-02 11:39:06.478971            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.478977   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 1878, in <listcomp>
2025-10-02 11:39:06.478982     return [_get_port_info(p) for p in ports]
2025-10-02 11:39:06.478988             ^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.478994   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 1876, in _get_port_info
2025-10-02 11:39:06.478999     return Port(port)
2025-10-02 11:39:06.479005            ^^^^^^^^^^
2025-10-02 11:39:06.479010   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 195, in __init__
2025-10-02 11:39:06.479016     apidict = copy.deepcopy(apidict)
2025-10-02 11:39:06.479022               ^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479027   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
2025-10-02 11:39:06.479033     y = _reconstruct(x, memo, *rv)
2025-10-02 11:39:06.479038         ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479044   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
2025-10-02 11:39:06.479051     state = deepcopy(state, memo)
2025-10-02 11:39:06.479056             ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479061   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
2025-10-02 11:39:06.479067     y = copier(x, memo)
2025-10-02 11:39:06.479072         ^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479078   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
2025-10-02 11:39:06.479104     y[deepcopy(key, memo)] = deepcopy(value, memo)
2025-10-02 11:39:06.479109                              ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479115   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
2025-10-02 11:39:06.479120     y = _reconstruct(x, memo, *rv)
2025-10-02 11:39:06.479126         ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479131   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
2025-10-02 11:39:06.479137     state = deepcopy(state, memo)
2025-10-02 11:39:06.479142             ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479147   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
2025-10-02 11:39:06.479153     y = copier(x, memo)
2025-10-02 11:39:06.479158         ^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479163   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
2025-10-02 11:39:06.479169     y[deepcopy(key, memo)] = deepcopy(value, memo)
2025-10-02 11:39:06.479175                              ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479180   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
2025-10-02 11:39:06.479186     y = _reconstruct(x, memo, *rv)
2025-10-02 11:39:06.479191         ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479197   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
2025-10-02 11:39:06.479202     state = deepcopy(state, memo)
2025-10-02 11:39:06.479207             ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479213   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
2025-10-02 11:39:06.479218     y = copier(x, memo)
2025-10-02 11:39:06.479232         ^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479237   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
2025-10-02 11:39:06.479243     y[deepcopy(key, memo)] = deepcopy(value, memo)
2025-10-02 11:39:06.479249                              ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479254   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
2025-10-02 11:39:06.479259     y = _reconstruct(x, memo, *rv)
2025-10-02 11:39:06.479265         ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479270   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
2025-10-02 11:39:06.479276     state = deepcopy(state, memo)
2025-10-02 11:39:06.479281             ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479286   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
2025-10-02 11:39:06.479292     y = copier(x, memo)
2025-10-02 11:39:06.479298         ^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479303   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
2025-10-02 11:39:06.479308     y[deepcopy(key, memo)] = deepcopy(value, memo)
2025-10-02 11:39:06.479314                              ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479320   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
2025-10-02 11:39:06.479330     y = copier(x, memo)
2025-10-02 11:39:06.479335         ^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479341   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
2025-10-02 11:39:06.479346     y[deepcopy(key, memo)] = deepcopy(value, memo)
2025-10-02 11:39:06.479352       ^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479357   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
2025-10-02 11:39:06.479363     y = _reconstruct(x, memo, *rv)
2025-10-02 11:39:06.479369         ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479374   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
2025-10-02 11:39:06.479380     state = deepcopy(state, memo)
2025-10-02 11:39:06.479385             ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479390   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
2025-10-02 11:39:06.479396     y = copier(x, memo)
2025-10-02 11:39:06.479401         ^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479407   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
2025-10-02 11:39:06.479412     y[deepcopy(key, memo)] = deepcopy(value, memo)
2025-10-02 11:39:06.479418                              ^^^^^^^^^^^^^^^^^^^^^
2025-10-02 11:39:06.479423   File "/usr/lib/python3.11/copy.py", line 161, in deepcopy
2025-10-02 11:39:06.479459     rv = reductor(4)
2025-10-02 11:39:06.479465          ^^^^^^^^^^^
2025-10-02 11:39:06.479470 TypeError: cannot pickle 'module' object
2025-10-02 11:39:06.479476

** Affects: horizon
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/2126646

Title:
  cannot list ports on "create instance" when a network has trunk ports

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  After upgrade from 2024.1 to 2024.2 on the "launch instance" page
  inside horizon it is not possible to list ports anymore when one
  network has trunk ports.

  It will complain with an error window on top right saying "cannot
  access ports", in the horizon error log i see this:

  2025-10-02 11:39:05.333684 /var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/rest/neutron.py:142: UnhashableKeyWarning: The key of openstack_dashboard.api.neutron port_list_with_trunk_types is not hashable and cannot be memoized: ((<weakref at 0x7f213ac8cdb0; to 'WSGIRequest' at 0x7f213abe2cd0>,), (('network_id', 'df1c15c5-6346-4b93-a94d-94c45bfc3fa6'),))
  2025-10-02 11:39:05.333739
  2025-10-02 11:39:05.333748   result = api.neutron.port_list_with_trunk_types(request,
  2025-10-02 11:39:06.478829 error invoking apiclient
  2025-10-02 11:39:06.478885 Traceback (most recent call last):
  2025-10-02 11:39:06.478896   File "/var/lib/kolla/venv/lib/python3.11/site-packages/horizon/utils/memoized.py", line 107, in wrapped
  2025-10-02 11:39:06.478902     value = cache[key] = cache.pop(key)
  2025-10-02 11:39:06.478907                          ^^^^^^^^^^^^^^
  2025-10-02 11:39:06.478914 KeyError: ((<weakref at 0x7f213ac8cdb0; to 'WSGIRequest' at 0x7f213abe2cd0>,), (('network_id', 'df1c15c5-6346-4b93-a94d-94c45bfc3fa6'),))
  2025-10-02 11:39:06.478920
  2025-10-02 11:39:06.478926 During handling of the above exception, another exception occurred:
  2025-10-02 11:39:06.478932
  2025-10-02 11:39:06.478936 Traceback (most recent call last):
  2025-10-02 11:39:06.478941   File "/var/lib/kolla/venv/lib/python3.11/site-packages/horizon/utils/memoized.py", line 109, in wrapped
  2025-10-02 11:39:06.478948     value = cache[key] = func(*args, **kwargs)
  2025-10-02 11:39:06.478954                          ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.478960   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 1878, in port_list_with_trunk_types
  2025-10-02 11:39:06.478965     return [_get_port_info(p) for p in ports]
  2025-10-02 11:39:06.478971            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.478977   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 1878, in <listcomp>
  2025-10-02 11:39:06.478982     return [_get_port_info(p) for p in ports]
  2025-10-02 11:39:06.478988             ^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.478994   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 1876, in _get_port_info
  2025-10-02 11:39:06.478999     return Port(port)
  2025-10-02 11:39:06.479005            ^^^^^^^^^^
  2025-10-02 11:39:06.479010   File "/var/lib/kolla/venv/lib/python3.11/site-packages/openstack_dashboard/api/neutron.py", line 195, in __init__
  2025-10-02 11:39:06.479016     apidict = copy.deepcopy(apidict)
  2025-10-02 11:39:06.479022               ^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479027   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
  2025-10-02 11:39:06.479033     y = _reconstruct(x, memo, *rv)
  2025-10-02 11:39:06.479038         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479044   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
  2025-10-02 11:39:06.479051     state = deepcopy(state, memo)
  2025-10-02 11:39:06.479056             ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479061   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
  2025-10-02 11:39:06.479067     y = copier(x, memo)
  2025-10-02 11:39:06.479072         ^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479078   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
  2025-10-02 11:39:06.479104     y[deepcopy(key, memo)] = deepcopy(value, memo)
  2025-10-02 11:39:06.479109                              ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479115   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
  2025-10-02 11:39:06.479120     y = _reconstruct(x, memo, *rv)
  2025-10-02 11:39:06.479126         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479131   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
  2025-10-02 11:39:06.479137     state = deepcopy(state, memo)
  2025-10-02 11:39:06.479142             ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479147   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
  2025-10-02 11:39:06.479153     y = copier(x, memo)
  2025-10-02 11:39:06.479158         ^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479163   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
  2025-10-02 11:39:06.479169     y[deepcopy(key, memo)] = deepcopy(value, memo)
  2025-10-02 11:39:06.479175                              ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479180   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
  2025-10-02 11:39:06.479186     y = _reconstruct(x, memo, *rv)
  2025-10-02 11:39:06.479191         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479197   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
  2025-10-02 11:39:06.479202     state = deepcopy(state, memo)
  2025-10-02 11:39:06.479207             ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479213   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
  2025-10-02 11:39:06.479218     y = copier(x, memo)
  2025-10-02 11:39:06.479232         ^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479237   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
  2025-10-02 11:39:06.479243     y[deepcopy(key, memo)] = deepcopy(value, memo)
  2025-10-02 11:39:06.479249                              ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479254   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
  2025-10-02 11:39:06.479259     y = _reconstruct(x, memo, *rv)
  2025-10-02 11:39:06.479265         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479270   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
  2025-10-02 11:39:06.479276     state = deepcopy(state, memo)
  2025-10-02 11:39:06.479281             ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479286   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
  2025-10-02 11:39:06.479292     y = copier(x, memo)
  2025-10-02 11:39:06.479298         ^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479303   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
  2025-10-02 11:39:06.479308     y[deepcopy(key, memo)] = deepcopy(value, memo)
  2025-10-02 11:39:06.479314                              ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479320   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
  2025-10-02 11:39:06.479330     y = copier(x, memo)
  2025-10-02 11:39:06.479335         ^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479341   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
  2025-10-02 11:39:06.479346     y[deepcopy(key, memo)] = deepcopy(value, memo)
  2025-10-02 11:39:06.479352       ^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479357   File "/usr/lib/python3.11/copy.py", line 172, in deepcopy
  2025-10-02 11:39:06.479363     y = _reconstruct(x, memo, *rv)
  2025-10-02 11:39:06.479369         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479374   File "/usr/lib/python3.11/copy.py", line 271, in _reconstruct
  2025-10-02 11:39:06.479380     state = deepcopy(state, memo)
  2025-10-02 11:39:06.479385             ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479390   File "/usr/lib/python3.11/copy.py", line 146, in deepcopy
  2025-10-02 11:39:06.479396     y = copier(x, memo)
  2025-10-02 11:39:06.479401         ^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479407   File "/usr/lib/python3.11/copy.py", line 231, in _deepcopy_dict
  2025-10-02 11:39:06.479412     y[deepcopy(key, memo)] = deepcopy(value, memo)
  2025-10-02 11:39:06.479418                              ^^^^^^^^^^^^^^^^^^^^^
  2025-10-02 11:39:06.479423   File "/usr/lib/python3.11/copy.py", line 161, in deepcopy
  2025-10-02 11:39:06.479459     rv = reductor(4)
  2025-10-02 11:39:06.479465          ^^^^^^^^^^^
  2025-10-02 11:39:06.479470 TypeError: cannot pickle 'module' object
  2025-10-02 11:39:06.479476

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