Just thought I'd report the following crash using 5.4 with the additional
patch for setting metadata-backup-interval=0. The error message is long,
so I have posted at the end pf this email. I don't know what it means, it
could be a network problem, but I didn't notice any other connection
problems with this machine.
I used stdeb to build a debian package for distribution across different
machines, you can see the result here:
https://www.maher.org.uk/~joseph/deb/
Running fsck.s3ql --force on this filesystem takes about 4 days, is there
a way to avoid doing this?
Thanks for all your works on s3ql!
Joseph
2025-09-13 11:11:18.400 1450804:Thread-3 (_upload_loop)
py.warnings._showwarnmsg:
/usr/lib/python3/dist-packages/s3ql/backends/gs.py:503: RuntimeWarning:
coroutine 'HTTPConnection.co_readall' was never awaited
exc = _parse_error_response(resp, self.conn.co_readall())
2025-09-13 11:11:18.426 1450804:Thread-3 (_upload_loop)
s3ql.mount.exchook: Unhandled exception in thread, terminating
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/s3ql/mount.py", line 93, in
run_with_except_hook
run_old(*args, **kw)
~~~~~~~^^^^^^^^^^^^^
File "/usr/lib/python3.13/threading.py", line 994, in run
self._target(*self._args, **self._kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/block_cache.py", line 325, in
_upload_loop
self._do_upload(*tmp)
~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/block_cache.py", line 380, in
_do_upload
obj_size = backend.write_fh('s3ql_data_%d' % obj_id, el)
File "/usr/lib/python3/dist-packages/s3ql/backends/comprenc.py", line
279, in write_fh
return self.backend.write_fh(key, fh, meta_raw, len_=len_)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line 425, in
write_fh
return self._write_fh(key, fh, off, len_, metadata or {})
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/backends/common.py", line 114,
in wrapped
return method(*a, **kw)
File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line 461, in
_write_fh
resp = self._do_request(
'POST',
...<3 lines>...
body=BodyFollowing(body_size),
)
File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line 606, in
_do_request
resp = self.conn.read_response()
File "/usr/lib/python3/dist-packages/s3ql/http.py", line 769, in
read_response
return eval_coroutine(self.co_read_response())
File "/usr/lib/python3/dist-packages/s3ql/http.py", line 1429, in
eval_coroutine
next(it)
~~~~^^^^
File "/usr/lib/python3/dist-packages/s3ql/http.py", line 787, in
co_read_response
raise StateError('Previous response not read completely')
s3ql.http.StateError: Previous response not read completely
2025-09-13 11:11:18.441 1450804:Thread-3 (_upload_loop)
__main__.excepthook: Uncaught top-level exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/s3ql/mount.py", line 93, in
run_with_except_hook
run_old(*args, **kw)
~~~~~~~^^^^^^^^^^^^^
File "/usr/lib/python3.13/threading.py", line 994, in run
self._target(*self._args, **self._kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/block_cache.py", line 325, in
_upload_loop
self._do_upload(*tmp)
~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/block_cache.py", line 380, in
_do_upload
obj_size = backend.write_fh('s3ql_data_%d' % obj_id, el)
File "/usr/lib/python3/dist-packages/s3ql/backends/comprenc.py", line
279, in write_fh
return self.backend.write_fh(key, fh, meta_raw, len_=len_)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line 425, in
write_fh
return self._write_fh(key, fh, off, len_, metadata or {})
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/s3ql/backends/common.py", line 114,
in wrapped
return method(*a, **kw)
File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line 461, in
_write_fh
resp = self._do_request(
'POST',
...<3 lines>...
body=BodyFollowing(body_size),
)
File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line 606, in
_do_request
resp = self.conn.read_response()
File "/usr/lib/python3/dist-packages/s3ql/http.py", line 769, in
read_response
return eval_coroutine(self.co_read_response())
File "/usr/lib/python3/dist-packages/s3ql/http.py", line 1429, in
eval_coroutine
next(it)
~~~~^^^^
File "/usr/lib/python3/dist-packages/s3ql/http.py", line 787, in
co_read_response
raise StateError('Previous response not read completely')
s3ql.http.StateError: Previous response not read completely
2025-09-13 11:11:18.639 1450804:MainThread s3ql.mount.unmount: Unmounting
file system...
2025-09-13 11:11:34.981 1450804:MainThread __main__.excepthook: Uncaught
top-level exception:
+ Exception Group Traceback (most recent call last):
| File "/usr/bin/mount.s3ql", line 33, in <module>
| sys.exit(load_entry_point('s3ql==5.4.0', 'console_scripts',
'mount.s3ql')())
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/s3ql/mount.py", line 170, in
main
| trio.run(main_async, options, stdout_log_handler)
| ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/trio/_core/_run.py", line 2423,
in run
| raise runner.main_task_outcome.error
| File "/usr/lib/python3/dist-packages/s3ql/mount.py", line 238, in
main_async
| async with trio.open_nursery() as nursery, AsyncExitStack() as cm:
| ~~~~~~~~~~~~~~~~~^^
| File "/usr/lib/python3/dist-packages/trio/_core/_run.py", line 1058,
in __aexit__
| raise combined_error_from_nursery
| ExceptionGroup: Exceptions from Trio nursery (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/lib/python3/dist-packages/s3ql/mount.py", line 336, in
main_async
| raise exc_inst.with_traceback(exc_tb)
| File "/usr/lib/python3/dist-packages/s3ql/mount.py", line 93, in
run_with_except_hook
| run_old(*args, **kw)
| ~~~~~~~^^^^^^^^^^^^^
| File "/usr/lib/python3.13/threading.py", line 994, in run
| self._target(*self._args, **self._kwargs)
| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/s3ql/block_cache.py", line
325, in _upload_loop
| self._do_upload(*tmp)
| ~~~~~~~~~~~~~~~^^^^^^
| File "/usr/lib/python3/dist-packages/s3ql/block_cache.py", line
380, in _do_upload
| obj_size = backend.write_fh('s3ql_data_%d' % obj_id, el)
| File "/usr/lib/python3/dist-packages/s3ql/backends/comprenc.py",
line 279, in write_fh
| return self.backend.write_fh(key, fh, meta_raw, len_=len_)
| ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line
425, in write_fh
| return self._write_fh(key, fh, off, len_, metadata or {})
| ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3/dist-packages/s3ql/backends/common.py",
line 114, in wrapped
| return method(*a, **kw)
| File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line
461, in _write_fh
| resp = self._do_request(
| 'POST',
| ...<3 lines>...
| body=BodyFollowing(body_size),
| )
| File "/usr/lib/python3/dist-packages/s3ql/backends/gs.py", line
606, in _do_request
| resp = self.conn.read_response()
| File "/usr/lib/python3/dist-packages/s3ql/http.py", line 769, in
read_response
| return eval_coroutine(self.co_read_response())
| File "/usr/lib/python3/dist-packages/s3ql/http.py", line 1429, in
eval_coroutine
| next(it)
| ~~~~^^^^
| File "/usr/lib/python3/dist-packages/s3ql/http.py", line 787, in
co_read_response
| raise StateError('Previous response not read completely')
| s3ql.http.StateError: Previous response not read completely
+------------------------------------