Message394017
The concurrent.futures.ThreadPoolExecutor class, which is the default asyncio executor, introduced the _idle_semaphore field in version 3.8 in order to track idle threads so they can be reused before increasing the pool size unnecessarily.
This semaphore counter becomes unbalanced when the thread pool is over-saturated, as can be seen in the file provided. This is due to workers always incrementing the count after finishing a job, whereas the executor only decrements the count if it is already greater than 0.
This seems to be a logic bug unrelated to the running environment and introduced since python 3.8. |
|
Date |
User |
Action |
Args |
2021-05-20 11:51:36 | bennieswart | set | recipients:
+ bennieswart, asvetlov, yselivanov |
2021-05-20 11:51:36 | bennieswart | set | messageid: <1621511496.17.0.839085647104.issue44188@roundup.psfhosted.org> |
2021-05-20 11:51:36 | bennieswart | link | issue44188 messages |
2021-05-20 11:51:36 | bennieswart | create | |
|