Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork8.1k
Open
Description
Bug summary
We have been struggling with flaky timeout behavior for some time. See#29797. At some point we thought, we had fixed it though updating the runner, but it sometimes happens again. So it's not eventually solved. Possibly we have to revive#29981 and/or dig deeper.
Failures look like
> raise TimeoutExpired(self.args, orig_timeout)E subprocess.TimeoutExpired: Command '['C:\\hostedtoolcache\\windows\\Python\\3.12.10\\x64\\python.exe', '-c', "import importlib.util;_spec = importlib.util.spec_from_file_location('matplotlib.tests.test_backends_interactive', 'D:\\\\a\\\\1\\\\s\\\\lib\\\\matplotlib\\\\tests\\\\test_backends_interactive.py');_module = importlib.util.module_from_spec(_spec);_spec.loader.exec_module(_module);_module._impl_test_lazy_auto_backend_selection()"]' timed out after 20 secondsCode for reproduction
-For a start, let's track in which pipelines and for which tests the timeout can be observed:
- Pytest Windows_py311 - test_lazy_auto_backend_selectionref
- Pytest Windows_py313 - test_interactive_backend[toolbar2-MPLBACKEND=tkagg-BACKEND_DEPS=tkinter]ref
- Pytest Windows_py313 - test_fontcache_thread_saferef
- Pytest Windows_py313 - test_fallback_to_different_backendref
- Pytest Windows_py313 - test_blitting_events[MPLBACKEND=tkagg-BACKEND_DEPS=tkinter]ref
- Pytest Windows_py313 test_blitref
- Pytest Windows_py313 test_fallback_to_different_backendref
- Pytest Windows_py313 test_backend_getattr[matplotlib.backends.backend_agg]ref
- Pytest Windows_py312 test_interactive_thread_safety[MPLBACKEND=tkagg-BACKEND_DEPS=tkinter]ref
- Pytest Windows_py313 test_interactive_timers[MPLBACKEND=tkagg-BACKEND_DEPS=tkinter]ref
- Pytest Windows_py312 test_fontcache_thread_saferef
- Pytest Windows_py313 test_blitref
- Pytest Windows_py312 test_qt_missingref
Observations
- seems only to occur on windows, but with all python versions (3.11-3.13)
- if it fails it's typically one test, but up to 4 timed out tests have been observed in a single pytest run
- the Majority of PRs have at least one timeout
- it happens in different tests every time but the common part is that they create subprocesses