We found recently that testing on jammy-caracal was failing for reactive charms that had setuptools pinned to an older version. The tests failed because of an issue with the imports in distutils that changed in newer versions of Python. Here is an example from charm-ironic-api:
This happens in reactive charms that pin setuptools to an old version. Reactive charms without this pinning work normally. The pinning should be removed. It is no longer necessary.
We found recently that testing on jammy-caracal was failing for reactive charms that had setuptools pinned to an older version. The tests failed because of an issue with the imports in distutils that changed in newer versions of Python. Here is an example from charm-ironic-api:
2024-05-10 00:35:13.127496 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic- api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 Traceback (most recent call last): api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "/var/lib/ juju/agents/ unit-ironic- api-0/charm/ hooks/identity- service- relation- created" , line 7, in <module> api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 from charms.layer import basic # noqa api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "/var/lib/ juju/agents/ unit-ironic- api-0/charm/ lib/charms/ layer/basic. py", line 5, in <module> api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 from distutils.version import LooseVersion api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "<frozen importlib. _bootstrap> ", line 1027, in _find_and_load api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "<frozen importlib. _bootstrap> ", line 1002, in _find_and_ load_unlocked api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "<frozen importlib. _bootstrap> ", line 945, in _find_spec api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "/var/lib/ juju/agents/ unit-ironic- api-0/. venv/lib/ python3. 10/site- packages/ _distutils_ hack/__ init__. py", line 72, in find_spec api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 return self.get_ distutils_ spec() api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 File "/var/lib/ juju/agents/ unit-ironic- api-0/. venv/lib/ python3. 10/site- packages/ _distutils_ hack/__ init__. py", line 77, in get_distutils_spec api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 class DistutilsLoader (importlib. util.abc. Loader) : api-0.log: 2024-05-10 00:35:11 WARNING unit.ironic- api/0.identity- service- relation- created logger.go:60 AttributeError: module 'importlib.util' has no attribute 'abc' api-0.log: 2024-05-10 00:35:11 ERROR juju.worker. uniter. operation runhook.go:153 hook "identity- service- relation- created" (via explicit, bespoke hook script) failed: exit status 1
2024-05-10 00:35:13.127722 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.127743 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.127758 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.127765 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.127771 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128004 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128023 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128029 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128048 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128254 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128310 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128317 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
2024-05-10 00:35:13.128323 | focal-medium | 2024-05-10 00:35:13 [ERROR] unit-ironic-
This happens in reactive charms that pin setuptools to an old version. Reactive charms without this pinning work normally. The pinning should be removed. It is no longer necessary.