[Bug 2157078] Re: ironic build failures on jammy-caracal
Hemanth Nakkina
2157078 at bugs.launchpad.net
Thu Jun 18 12:23:09 UTC 2026
Fix is made in ca-updates repo as it is affecting only jammy caracal
** Changed in: ironic (Ubuntu)
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to ironic in Ubuntu.
https://bugs.launchpad.net/bugs/2157078
Title:
ironic build failures on jammy-caracal
Status in ironic package in Ubuntu:
Fix Released
Bug description:
Ironic build on jammy-caracal failed with the following tests
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4493, in test_create_node_explicit_storage_interface
result = self._test_create_node(headers=headers,
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4402, in _test_create_node
response = self.post_json('/nodes', ndict,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list
ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 8331, in test_filtering_by_multi_shard_as_list
result = self.get_json(
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field
ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 8294, in test_get_node_shard_field
result = self.get_json(
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported
ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_port.py", line 992, in test_detail_by_node_name_not_supported
data = self.get_json('/ports/detail?node=%s' % 'test-node',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 1157, in test_detail_list_all_forbidden
data = self.get_json('/nodes/detail', headers={
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4508, in test_create_node_name_empty_not_acceptable
response = self.post_json('/nodes', ndict, expect_errors=True)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match
ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_port.py", line 945, in test_get_all_by_node_name_non_admin_no_match
data = self.get_json("/ports?node=%s" % 'test-node',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4834, in test_create_node_no_chassis_uuid
response = self.post_json('/nodes', ndict)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 5019, in test_create_node_owner_system_scope
response = self.post_json('/nodes', ndict,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4936, in test_create_node_resource_class
response = self.post_json('/nodes', ndict,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4471, in test_create_node_specify_interfaces
result = self._test_create_node(headers=headers, **node)
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4402, in _test_create_node
response = self.post_json('/nodes', ndict,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits
ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 4478, in test_create_node_specify_traits
response = self.post_json('/nodes', ndict, headers=headers,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 150, in post_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 2058, in test_get_nodes_by_provision_state
data = self.get_json('/nodes?provision_state=available',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields
ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 3567, in test_update_interface_fields
response = self.patch_json('/nodes/%s' % node.uuid,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 169, in patch_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected
ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 3779, in test_update_protected
response = self.patch_json('/nodes/%s' % node.uuid,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 169, in patch_json
return self._request_json(path=path, params=params,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json
print(method.upper(), full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/mock.py", line 1379, in patched
return func(*newargs, **newkeywargs)
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 1372, in test_many_list_all_forbid_project_mismatch
response = self.get_json('/nodes?project=54321',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 359, in test_node_automated_clean_true_field
data = self.get_json('/nodes/%s' % node.uuid,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 500, in test_node_boot_mode
data = self.get_json('/nodes/%s' % node.uuid,
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 336, in test_node_fault_hidden_in_lower_version
self._test_node_field_hidden_in_lower_version('fault',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 290, in _test_node_field_hidden_in_lower_version
data = self.get_json(
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 451, in test_node_lessee_hidden_in_lower_version
self._test_node_field_hidden_in_lower_version('lessee',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 290, in _test_node_field_hidden_in_lower_version
data = self.get_json(
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 401, in test_node_owner_hidden_in_lower_version
self._test_node_field_hidden_in_lower_version('owner',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 294, in _test_node_field_hidden_in_lower_version
data = self.get_json(
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
======================================================================
FAIL: ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version
ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 374, in test_node_protected_reason_hidden_in_lower_version
self._test_node_field_hidden_in_lower_version('protected_reason',
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/controllers/v1/test_node.py", line 290, in _test_node_field_hidden_in_lower_version
data = self.get_json(
File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 231, in get_json
print("GET", full_path, "WITH", params, "GOT", str(response))
BlockingIOError: [Errno 11] write could not complete without blocking
----------------------------------------------------------------------
Ran 9673 tests in 175.499s
FAILED (failures=22, skipped=54)
The same package passed in noble-caracal builds.
Upon investigation, noble uses python3-stestr=4.1.0 and jammy uses
python3-stestr==3.2.1 which caused the failure.
Ran on Jammy container tox -e py3 on stable/2025.1 and all tests
passed. Installed stestr=3.2.1 using pip and reran the tests and i can
see same failures
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ironic/+bug/2157078/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list