🌐 AI搜索 & 代理 主页
Skip to content

[Bug]: Random timeout failures in CI #30851

@timhoffm

Description

@timhoffm

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

No one assigned

    Labels

    CI: testingCI configuration and testing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions