Python 3.9.6 threading compatibility
See original GitHub issueWe are encountering a high rate of failure with some of our tests after upgrading to Python 3.9.6.
> python3 -m green --run-coverage --cov-config-file my_lib.coveragerc --junit-report my_lib-pytests.xml --include-patterns 'my_lib/*' my_lib
.............................Exception in thread Thread-1:
Traceback (most recent call last):
File ".pyenv/versions/3.9.6/lib/python3.9/threading.py", line 973, in _bootstrap_inner
self.run()
File ".pyenv/versions/3.9.6/lib/python3.9/threading.py", line 910, in run
self._target(*self._args, **self._kwargs)
File ".pyenv/versions/3.9.6/lib/python3.9/multiprocessing/pool.py", line 513, in _handle_workers
cls._maintain_pool(ctx, Process, processes, pool, inqueue,
File ".pyenv/versions/3.9.6/lib/python3.9/multiprocessing/pool.py", line 337, in _maintain_pool
Pool._repopulate_pool_static(ctx, Process, processes, pool,
File ".pyenv/versions/3.9.6/lib/python3.9/multiprocessing/pool.py", line 319, in _repopulate_pool_static
w = Process(ctx, target=worker,
File ".pyenv/versions/3.9.6/lib/python3.9/multiprocessing/process.py", line 82, in __init__
assert group is None, 'group argument must be None for now'
AssertionError: group argument must be None for now
................................................................................................................................................................................................................................................................................................................................................................................................................................................Sending interrupt signal to process
Killing processes
kill finished with exit code 0
This is failing most of the time under docker, not so much under macOS with the same versions of green (3.2.6) and python (3.9.6).
I’m not sure if the issue is with green itself but the stack trace seems to come from green.
Issue Analytics
- State:
- Created 2 years ago
- Comments:14 (6 by maintainers)
Top Results From Across the Web
threading — Thread-based parallelism — Python 3.11.1 ...
Python's Thread class supports a subset of the behavior of Java's Thread class; currently, there are no priorities, no thread groups, and threads...
Read more >What's New In Python 3.9 — Python 3.11.1 documentation
Mapping , are kept for one last release for backward compatibility. ... It is mainly used for running IO-bound functions in a separate...
Read more >PEP 606 – Python Compatibility Version
Python 3.9 with sys.set_python_compat_version((3, 8)) is not fully compatible with Python 3.8: the compatibility is only partial. Security ...
Read more >Python Documentation by Version - Python.org
Python Documentation by Version. Some previous versions of the documentation remain available online. Use the list below to select a version to view....
Read more >Changelog — Python 3.9.14 documentation
bpo-46000: Improve compatibility of the curses module with NetBSD curses. ... It reduces the risk of getting an unreadable dump when two threads...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Fixed in Green 3.3.0, which I just released. 🥳 🎈 🎉
With the help of this post:https://stackoverflow.com/questions/15349997/assertionerror-when-threading-in-python
We found out that the library under test has a subclass of
threading.Thread()
but with a different signature. We suspect that the code need to be refactored to behave better. It looks like the bug is not in green, but the fact that green get stuck is concerning.I suppose it got stuck because the code under test got stuck.