yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #96087
[Bug 2103413] Re: Python3.13: Garbage collection happens too early on greenthread switches
Reviewed: https://review.opendev.org/c/openstack/nova/+/952966
Committed: https://opendev.org/openstack/nova/commit/7d946c45350be935a964990e60bd5213c9aa1423
Submitter: "Zuul (22348)"
Branch: master
commit 7d946c45350be935a964990e60bd5213c9aa1423
Author: Balazs Gibizer <gibi@xxxxxxxxxx>
Date: Wed Jun 25 10:30:09 2025 +0200
Fix neutron client dict grabbing
Due to a bug in python3.13 [1] the following code will leads to an
emptied dict by the GC even though we hold a reference to the dict.
import gc
class A:
def __init__(self, client):
self.__dict__ = client.__dict__
self.client = client
class B:
def __init__(self):
self.test_attr = "foo"
a = A(B())
print(a.__dict__)
print(a.client.__dict__)
gc.collect()
print("## After gc.collect()")
print(a.__dict__)
print(a.client.__dict__)
# Output with Python 13
{'test_attr': 'foo', 'client': <__main__.B object at 0x73ea355a8590>}
{'test_attr': 'foo', 'client': <__main__.B object at 0x73ea355a8590>}
## After gc.collect()
{'test_attr': 'foo', 'client': <__main__.B object at 0x73ea355a8590>}
{}
# Output with Python 12
{'test_attr': 'foo', 'client': <__main__.B object at 0x79c86f355400>}
{'test_attr': 'foo', 'client': <__main__.B object at 0x79c86f355400>}
## After gc.collect()
{'test_attr': 'foo', 'client': <__main__.B object at 0x79c86f355400>}
{'test_attr': 'foo', 'client': <__main__.B object at 0x79c86f355400>
Our neutron client has this kind of code and therefore failing in
python3.13. This patch adds __getattr__ instead of trying to hold a
direct reference to the __dict__. This seems to work around the
problem.
Co-Authored-By: Johannes Kulik <johannes.kulik@xxxxxxx>
[1] https://github.com/python/cpython/issues/130327
Closes-Bug: #2103413
Change-Id: I87c9fbb9331135674232c6e77d700966a938b0ac
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2103413
Title:
Python3.13: Garbage collection happens too early on greenthread
switches
Status in OpenStack Compute (nova):
Fix Released
Status in Release Notes for Ubuntu:
In Progress
Status in nova package in Ubuntu:
New
Bug description:
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] Traceback (most recent call last):
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/compute/manager.py", line 2648, in _build_and_run_instance
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] self.driver.spawn(context, instance, image_meta,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] injected_files, admin_password,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] allocs, network_info=network_info,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] block_device_info=block_device_info,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] accel_info=accel_info)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 4832, in spawn
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] xml = self._get_guest_xml(context, instance, network_info,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] disk_info, image_meta,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] block_device_info=block_device_info,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] mdevs=mdevs, accel_info=accel_info)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/virt/libvirt/driver.py", line 7997, in _get_guest_xml
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] network_info_str = str(network_info)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/model.py", line 622, in __str__
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return self._sync_wrapper(fn, *args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/model.py", line 605, in _sync_wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] self.wait()
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/model.py", line 637, in wait
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] self[:] = self._gt.wait()
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 232, in wait
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return self._exit_event.wait()
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~~~~~^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/eventlet/event.py", line 131, in wait
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] current.throw(*self._exc)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/eventlet/greenthread.py", line 272, in main
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] result = function(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/utils.py", line 663, in context_wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return func(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/compute/manager.py", line 2018, in _allocate_network_async
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] raise e
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/compute/manager.py", line 1996, in _allocate_network_async
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] nwinfo = self.network_api.allocate_for_instance(
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] context, instance,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ...<3 lines>...
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] resource_provider_mapping=resource_provider_mapping,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] network_arqs=network_arqs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 1287, in allocate_for_instance
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] nw_info = self.get_instance_nw_info(
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] context, instance, networks=ordered_nets,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] port_ids=ordered_port_ids,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] admin_client=admin_client,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] preexisting_port_ids=preexisting_port_ids)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 2047, in get_instance_nw_info
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] result = self._get_instance_nw_info(context, instance, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 2073, in _get_instance_nw_info
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] nw_info = self._build_network_info_model(context, instance, networks,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] port_ids, admin_client,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] preexisting_port_ids,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] refresh_vif_id,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] force_refresh=force_refresh)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 3496, in _build_network_info_model
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] data = client.list_ports(**search_opts)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 196, in wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ret = obj(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/v2_0/client.py", line 815, in list_ports
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return self.list('ports', self.ports_path, retrieve_all,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] **_params)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 196, in wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ret = obj(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/v2_0/client.py", line 372, in list
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] for r in self._pagination(collection, path, **params):
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/v2_0/client.py", line 387, in _pagination
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] res = self.get(path, params=params)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 196, in wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ret = obj(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/v2_0/client.py", line 356, in get
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return self.retry_request("GET", action, body=body,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] headers=headers, params=params)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 196, in wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ret = obj(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/v2_0/client.py", line 333, in retry_request
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return self.do_request(method, action, body=body,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] headers=headers, params=params)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/nova/network/neutron.py", line 196, in wrapper
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ret = obj(*args, **kwargs)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/v2_0/client.py", line 284, in do_request
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] resp, replybody = self.httpclient.do_request(action, method, body=body,
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] headers=headers)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/client.py", line 341, in do_request
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] self._check_uri_length(url)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~~~~~~^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/client.py", line 334, in _check_uri_length
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] uri_len = len(self.endpoint_url) + len(url)
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/neutronclient/client.py", line 348, in endpoint_url
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] return self.get_endpoint()
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ~~~~~~~~~~~~~~~~~^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] File "/usr/lib/python3/dist-packages/keystoneauth1/adapter.py", line 330, in get_endpoint
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] if self.endpoint_override:
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] ^^^^^^^^^^^^^^^^^^^^^^
2025-03-17 11:08:00.390 38463 ERROR nova.compute.manager [instance: 5c6786d9-15c5-414f-990f-eff2bf9f4d1f] AttributeError: 'SessionClient' object has no attribute 'endpoint_override'
This using Plucky Proposed - 25.04
nova-compute: 3:30.0.0+git2025030311.e6b8b051a9-0ubuntu1
This nova compute version is a snapshot of current master branch from
the Nova project, RC1 will soon be available:
https://review.opendev.org/c/openstack/releases/+/943941
This happens during testing with Tempest, in tests such as:
tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops
Nova should successfully create a VM
Nova failed to communicate with neutron because of an attribute error
I've tested the same version of Nova using the Epoxy Cloud archive
from proposed, and it worked correctly.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2103413/+subscriptions