python/cpython (original) (raw)
Bug report
Bug description:
I got a bug report on python-zlib-ng where using the threaded opening the program would hang if an exception occurred and a context manager was not used.
I fixed it by changing the threads to be daemonic: pycompression/python-zlib-ng#54.
This fixes the issue on python 3.9, 3.10, 3.11 and 3.12, but not 3.13-rc2. Also the latest main branch is affected. Unfortunately I could not create a minimal reproducer, other than running the test directly. Daemonic threads seem not to work in this particular case, where there are some BufferedIO streams and queues involved.
git clone -b issue53 https://github.com/pycompression/python-zlib-ng
# Build Cpython
./python -m ensurepip
./python -m pip install pytest pytest-timeout <path to python-zlib-ng repo>
./python -m pytest <path to python-zlib-ng repo>/tests/test_gzip_ng_threaded.py::test_threaded_program_can_exit_on_error
Since there are many code changes between 3.12 in 3.13 the underlying cause is surely there, but it is hard to pinpoint.
CPython versions tested on:
3.13, CPython main branch
Operating systems tested on:
Linux