-
-
Notifications
You must be signed in to change notification settings - Fork 8.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 seconds
Code 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_selection ref
- Pytest Windows_py313 - test_interactive_backend[toolbar2-MPLBACKEND=tkagg-BACKEND_DEPS=tkinter] ref
- Pytest Windows_py313 - test_fontcache_thread_safe ref
- Pytest Windows_py313 - test_fallback_to_different_backend ref
- Pytest Windows_py313 - test_blitting_events[MPLBACKEND=tkagg-BACKEND_DEPS=tkinter] ref
- Pytest Windows_py313 test_blit ref
- Pytest Windows_py313 test_fallback_to_different_backend ref
- 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_safe ref
- Pytest Windows_py313 test_blit ref
- Pytest Windows_py312 test_qt_missing ref
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
Metadata
Metadata
Assignees
Labels
No labels