-
-
Notifications
You must be signed in to change notification settings - Fork 729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide stack for suspended coro in test timeout #5446
Conversation
There are deterministic regressions: FAILED distributed/tests/test_scheduler.py::test_scheduler_init_pulls_blocked_handlers_from_config |
4aeeeaa
to
c3ba9f1
Compare
I removed the |
This looks good. The only issue I have with it is that it will mask TimeoutError's coming from inside the actual test function. In theory we could fix it by inspecting the stack trace and making sure that it was raised by utils_test.py. Unsure if it's worth the extra complexity though. |
I am raising the TimeoutError as |
Co-authored-by: crusaderky <crusaderky@gmail.com>
The way coroutines are handled in Distributed test with gen_cluster was changed in dask/distributed#5446, breaking the two tests that still relied on gen_cluster. Since we don't encourage using using coroutines/yield, there's really little reason to keep those tests.
The way coroutines are handled in Distributed test with gen_cluster was changed in dask/distributed#5446, breaking the two tests that still relied on gen_cluster. Since we don't encourage using using coroutines/yield, there's really little reason to keep those tests. Authors: - Peter Andreas Entschev (https://github.com/pentschev) Approvers: - Benjamin Zaitlen (https://github.com/quasiben) URL: #758
This allows us to retrieve some superficial information in case of a test timeout. Typically we only receive a plain timeout. This will print the frame the coro is currently suspended upon timeout. I hope this provides at least some indication of why a test is stuck. It does only show one frame level, though. Nested stack is not available according to the asyncio implementation. I figured this is still better than nothing. ¯_(ツ)_/¯
An example output looks like this when running the new test w/out the pytest exception assert