canonical / opensearch-operator

OpenSearch operator
Apache License 2.0
10 stars 6 forks source link

`ha/test_storage.py` fails with TypeError since PR#355 #388

Closed phvalguima closed 1 month ago

phvalguima commented 1 month ago

The PR#355 updated poetry.lock and seems to have broken part of our CIs. This commit already present some of the failures.

Failure is:

Traceback (most recent call last):
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/runner.py", line 341, in from_call
    result: TResult | None = func()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/runner.py", line 242, in <lambda>
    lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 182, in _multicall
    return outcome.get_result()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_result.py", line 100, in get_result
    raise exc.with_traceback(exc.__traceback__)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 167, in _multicall
    teardown.throw(outcome._exception)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
    yield from thread_exception_runtest_hook()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
    yield
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 167, in _multicall
    teardown.throw(outcome._exception)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
    yield from unraisable_exception_runtest_hook()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
    yield
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 167, in _multicall
    teardown.throw(outcome._exception)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/logging.py", line 848, in pytest_runtest_call
    yield from self._runtest_for(item, "call")
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/logging.py", line 831, in _runtest_for
    yield
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 167, in _multicall
    teardown.throw(outcome._exception)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/capture.py", line 879, in pytest_runtest_call
    return (yield)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 167, in _multicall
    teardown.throw(outcome._exception)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
    return (yield)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall
    res = hook_impl.function(*args)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/runner.py", line [174](https://github.com/canonical/opensearch-operator/actions/runs/10258605934/job/28382000783#step:27:175), in pytest_runtest_call
    item.runtest()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/python.py", line 1627, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 182, in _multicall
    return outcome.get_result()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_result.py", line 100, in get_result
    raise exc.with_traceback(exc.__traceback__)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall
    res = hook_impl.function(*args)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/pytest_asyncio/plugin.py", line 529, in inner
    _loop.run_until_complete(task)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/tests/integration/ha/test_storage.py", line 45, in test_build_and_deploy
    await asyncio.gather(
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/juju/model.py", line [184](https://github.com/canonical/opensearch-operator/actions/runs/10258605934/job/28382000783#step:27:185)1, in deploy
    return await self._deploy(
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/juju/model.py", line 2154, in _deploy
    storage={k: parse_storage_constraint(v) for k, v in (storage or dict()).items()},
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/juju/model.py", line 2154, in <dictcomp>
    storage={k: parse_storage_constraint(v) for k, v in (storage or dict()).items()},
  File "/home/ubuntu/github-runner/_work/opensearch-operator/opensearch-operator/.tox/integration/lib/python3.10/site-packages/juju/constraints.py", line 131, in parse_storage_constraint
    for m in STORAGE.finditer(constraint):
TypeError: expected string or bytes-like object
github-actions[bot] commented 1 month ago

https://warthogs.atlassian.net/browse/DPE-5093

phvalguima commented 1 month ago

The CI runs:

The test itself is failing, so I compared the CI packages:

$ diff broken.txt working.txt 
2c2
<   - Installing certifi (2024.7.4)
---
>   - Installing certifi (2024.6.2)
10c10
<   - Installing cachetools (5.4.0)
---
>   - Installing cachetools (5.3.3)
16c16
<   - Installing pure-eval (0.2.3)
---
>   - Installing pure-eval (0.2.2)
26,28c26,28
<   - Installing bcrypt (4.2.0)
<   - Installing botocore (1.34.149)
<   - Installing cryptography (43.0.0)
---
>   - Installing bcrypt (4.1.3)
>   - Installing botocore (1.34.135)
>   - Installing cryptography (42.0.8)
30,31c30,31
<   - Installing exceptiongroup (1.2.2)
<   - Installing google-auth (2.32.0)
---
>   - Installing exceptiongroup (1.2.1)
>   - Installing google-auth (2.30.0)
46c46
<   - Installing rpds-py (0.19.1)
---
>   - Installing rpds-py (0.18.1)
58c58
<   - Installing pytest (8.3.2)
---
>   - Installing pytest (8.2.2)
65c65
<   - Installing boto3 (1.34.149)
---
>   - Installing boto3 (1.34.135)
70,71c70,71
<   - Installing juju (3.5.2.0)
<   - Installing ops (2.15.0)
---
>   - Installing juju (3.4.0.0)
>   - Installing ops (2.14.1)
77c77
<   - Installing jsonschema (4.23.0)
---
>   - Installing jsonschema (4.22.0)
89c89
<   - Installing tenacity (8.5.0)
---
>   - Installing tenacity (8.4.2)
dragomirp commented 1 month ago

It's caused by libjuju 3.5.2.0. Downgrade to 3.5.0.0.

libjuju issue: https://github.com/juju/python-libjuju/issues/1075