Yes - it's a persistent error...

I don't get any errors on ubuntu 24.10 (oracular), but I do get the errors on ubuntu 25.04 (plucky), so it looks like something changed between these versions:


ubuntu 24.10 has:

libssl3t64:amd64                  3.3.1-2ubuntu2.1
python3-openssl                   24.2.1-1


ubuntu 25.04 has:

libssl3t64:amd64                  3.4.1-1ubuntu3
python3-openssl                   25.0.0-1



Joseph


On Sun, 17 Aug 2025, Daniel Jagszent wrote:


Hi Joseph,

      I'm building s3ql on debian trixie, and I'm getting the following test 
failure, any advice
      much appreciated! […]


Is this a persistent error? Re-running the tests multiple times, do you always 
get the error?

We currently do not run tests with Python 3.13, and it looks like the Python 3.13 
"ssl" package has
changes that we need to address.

But when I run the tests with Python 3.13 (on Ubuntu 24.04 with uv, 
main-branch), I only get some
warnings, not the error you get:

$ uv venv --python 3.13
$ source .venv/bin/activate
$ uv sync --extra dev
$ PYTHONTRACEMALLOC=20  py.test tests/t0_http.py
# […]
============== warnings summary ==============
t0_http.py::test_read_text[plain]
t0_http.py::test_read_text[ssl]
  
/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:67:
PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper 
encoding='UTF-8'>
 
  AttributeError: 'HTTPConnection' object has no attribute 'flush'
 
  During handling of the above exception, another exception occurred:
 
  Traceback (most recent call last):
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 157, in
pytest_pyfunc_call
      result = testfunction(**testargs)
  AttributeError: 'HTTPConnection' object has no attribute 'close'. Did you 
mean: 'closed'?
 
 
  Object allocated at:
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/main.py", 
line 367
      item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 117
      runtestprotocol(item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 136
      reports.append(call_and_report(item, "call", log))
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 245
      call = CallInfo.from_call(
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 344
      result: TResult | None = func()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 246
      lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 178
      item.runtest()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 1671
      self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 157
      result = testfunction(**testargs)
    File "/s3ql-source/tests/t0_http.py", line 486
      fh = TextIOWrapper(conn)
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

t0_http.py::test_read_text2[plain]
t0_http.py::test_read_text2[ssl]
  
/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:67:
PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper 
encoding='UTF-8'>
 
  AttributeError: 'HTTPConnection' object has no attribute 'flush'
 
  During handling of the above exception, another exception occurred:
 
  Traceback (most recent call last):
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 157, in
pytest_pyfunc_call
      result = testfunction(**testargs)
  AttributeError: 'HTTPConnection' object has no attribute 'close'. Did you 
mean: 'closed'?
 
 
  Object allocated at:
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/main.py", 
line 367
      item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 117
      runtestprotocol(item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 136
      reports.append(call_and_report(item, "call", log))
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 245
      call = CallInfo.from_call(
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 344
      result: TResult | None = func()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 246
      lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 178
      item.runtest()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 1671
      self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 157
      result = testfunction(**testargs)
    File "/s3ql-source/tests/t0_http.py", line 494
      fh = TextIOWrapper(conn)
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

t0_http.py::test_read_text3[plain]
t0_http.py::test_read_text3[ssl]
  
/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py:67:
PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper 
encoding='UTF-8'>
 
  AttributeError: 'HTTPConnection' object has no attribute 'flush'
 
  During handling of the above exception, another exception occurred:
 
  Traceback (most recent call last):
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 157, in
pytest_pyfunc_call
      result = testfunction(**testargs)
  AttributeError: 'HTTPConnection' object has no attribute 'close'. Did you 
mean: 'closed'?
 
 
  Object allocated at:
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/main.py", 
line 367
      item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 117
      runtestprotocol(item, nextitem=nextitem)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 136
      reports.append(call_and_report(item, "call", log))
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 245
      call = CallInfo.from_call(
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 344
      result: TResult | None = func()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 246
      lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/runner.py", 
line 178
      item.runtest()
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 1671
      self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", 
line 512
      return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_manager.py", 
line 120
      return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/pluggy/_callers.py", 
line 121
      res = hook_impl.function(*args)
    File "/s3ql-source/.venv/lib/python3.13/site-packages/_pytest/python.py", 
line 157
      result = testfunction(**testargs)
    File "/s3ql-source/tests/t0_http.py", line 503
      fh = TextIOWrapper(conn)
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))




Until we address Python 3.13 compatibility issues, you might want to install 
S3QL inside a venv with
Python 3.12.




--
You received this message because you are subscribed to the Google Groups 
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/s3ql/40a6450d-032a-6c46-98a8-0cc30ebaddf1%40maher.org.uk.

Reply via email to