This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2021年09月15日 17:30 by serhiy.storchaka, last changed 2022年04月11日 14:59 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 28361 | merged | serhiy.storchaka, 2021年09月15日 17:34 | |
| PR 28317 | serhiy.storchaka, 2021年09月15日 19:47 | ||
| PR 28384 | closed | miss-islington, 2021年09月16日 10:30 | |
| PR 28385 | closed | miss-islington, 2021年09月16日 10:30 | |
| PR 28408 | merged | serhiy.storchaka, 2021年09月17日 08:57 | |
| PR 28409 | merged | serhiy.storchaka, 2021年09月17日 08:58 | |
| PR 28414 | merged | serhiy.storchaka, 2021年09月17日 10:21 | |
| Messages (10) | |||
|---|---|---|---|
| msg401862 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月15日 17:30 | |
Dangling threads are reported when run test_socket tests which raise SkipTest in setUp() in refleak mode. $ ./python -m test -R 3:3 test_socket -m testBCM 0:00:00 load avg: 2.53 Run tests sequentially 0:00:00 load avg: 2.53 [1/1] test_socket beginning 6 repetitions 123456 .Warning -- threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 1) Warning -- Dangling thread: <_MainThread(MainThread, started 139675429708416)> .Warning -- threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 1) Warning -- Dangling thread: <_MainThread(MainThread, started 139675429708416)> .Warning -- threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 1) Warning -- Dangling thread: <_MainThread(MainThread, started 139675429708416)> ... test_socket failed (env changed) == Tests result: SUCCESS == 1 test altered the execution environment: test_socket Total duration: 655 ms Tests result: SUCCESS It happens because tearDown() is not called if setUp() raises any exception (including SkipTest). If we want to execute some cleanup code it should be registered with addCleanup(). |
|||
| msg401934 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月16日 10:30 | |
New changeset 7dacb70485a0910eb298c24b4d051720ca56fb91 by Serhiy Storchaka in branch 'main': bpo-45212: Fix dangling threads in skipped tests in test_socket (GH-28361) https://github.com/python/cpython/commit/7dacb70485a0910eb298c24b4d051720ca56fb91 |
|||
| msg401941 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2021年09月16日 12:52 | |
def testWithTimeoutTriggeredSend(self): conn = self.accept_conn() conn.recv(88192) + time.sleep(1) Was it a deliberate choice to add a sleep of 1 second? If yes, can you please add a comment to explain why? |
|||
| msg401949 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月16日 14:46 | |
Yes, it is a deliberate choice. It is difficult to explain why it was passed without it -- dues to a specific order of calling tearDown() and callbacks registered with addCleanup() in different base classes. Using an event object would fix it too, but: * Re-using an existing event object (like self.done) can have side effects in future. * Introducing a new event object has a risk of name conflicts, because the hierarchy of classes is complicated, and same name can be reused by accident. * time.sleep() is already used in other similar tests for timeouts. We only need to do a sleep longer then the timeout on the client side (0.01). Given all this, I decided that adding time.sleep(1) was the simplest, the most obvious, and maybe the most resistant to future human errors way. If we want to use an event object here, we will need to re-consider using time.sleep() in other tests. What comment do you want to add? |
|||
| msg402027 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月17日 10:11 | |
New changeset ce59ac93626004894c2b291ec599a36cfa9fb0be by Serhiy Storchaka in branch '3.10': [3.10] bpo-45212: Fix dangling threads in skipped tests in test_socket (GH-28361) (GH-28409) https://github.com/python/cpython/commit/ce59ac93626004894c2b291ec599a36cfa9fb0be |
|||
| msg402028 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月17日 10:11 | |
New changeset 10c3cf78518f4b31e1527c2795694b1bcb092696 by Serhiy Storchaka in branch '3.9': [3.9] bpo-45212: Fix dangling threads in skipped tests in test_socket (GH-28361) (GH-28408) https://github.com/python/cpython/commit/10c3cf78518f4b31e1527c2795694b1bcb092696 |
|||
| msg402029 - (view) | Author: Łukasz Langa (lukasz.langa) * (Python committer) | Date: 2021年09月17日 10:12 | |
We can add a comment to the effect that "the wait here needs to be longer than the client-side (0.01s)". Since you already merged the change to `main`, it will be easiest to merge the backports as well and add the comment in a follow-up series. |
|||
| msg402030 - (view) | Author: Łukasz Langa (lukasz.langa) * (Python committer) | Date: 2021年09月17日 10:12 | |
Haha, which you just did. Cool. |
|||
| msg402032 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月17日 10:24 | |
I have merged the backported PRs because they are blockers for my other PR which is a blocker for my other PR which is a blocker for my other PR and several future PRs. |
|||
| msg402052 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2021年09月17日 13:20 | |
New changeset 54a1760cde7bb01e5574734c389c0746762218fd by Serhiy Storchaka in branch 'main': bpo-45212: Add a comment for time.sleep() in tests (GH-28414) https://github.com/python/cpython/commit/54a1760cde7bb01e5574734c389c0746762218fd |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:59:50 | admin | set | github: 89375 |
| 2022年03月22日 23:07:28 | iritkatriel | link | issue22608 superseder |
| 2021年09月17日 13:20:52 | serhiy.storchaka | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2021年09月17日 13:20:19 | serhiy.storchaka | set | messages: + msg402052 |
| 2021年09月17日 10:24:57 | serhiy.storchaka | set | messages: + msg402032 |
| 2021年09月17日 10:21:43 | serhiy.storchaka | set | pull_requests: + pull_request26826 |
| 2021年09月17日 10:12:28 | lukasz.langa | set | messages: + msg402030 |
| 2021年09月17日 10:12:00 | lukasz.langa | set | nosy:
+ lukasz.langa messages: + msg402029 |
| 2021年09月17日 10:11:54 | serhiy.storchaka | set | messages: + msg402028 |
| 2021年09月17日 10:11:32 | serhiy.storchaka | set | messages: + msg402027 |
| 2021年09月17日 08:58:19 | serhiy.storchaka | set | pull_requests: + pull_request26821 |
| 2021年09月17日 08:57:29 | serhiy.storchaka | set | pull_requests: + pull_request26820 |
| 2021年09月16日 14:46:47 | serhiy.storchaka | set | messages: + msg401949 |
| 2021年09月16日 12:52:06 | vstinner | set | nosy:
+ vstinner messages: + msg401941 |
| 2021年09月16日 10:30:37 | miss-islington | set | pull_requests: + pull_request26799 |
| 2021年09月16日 10:30:14 | miss-islington | set | nosy:
+ miss-islington pull_requests: + pull_request26798 |
| 2021年09月16日 10:30:09 | serhiy.storchaka | set | messages: + msg401934 |
| 2021年09月15日 19:47:25 | serhiy.storchaka | link | issue45187 dependencies |
| 2021年09月15日 19:47:12 | serhiy.storchaka | set | pull_requests: + pull_request26789 |
| 2021年09月15日 17:34:58 | serhiy.storchaka | set | keywords:
+ patch stage: patch review pull_requests: + pull_request26775 |
| 2021年09月15日 17:30:17 | serhiy.storchaka | create | |