Skip to content

CI: the Test job is approaching its 30-minute timeout; parallelise the suite #383

Closed

Description

@ViperJuice

Each test job on main now takes 20–23 minutes, against the 30-minute timeout-minutes in .github/workflows/test.yml, and the time grows as the suite grows. #375 and #372 both pushed the 3.10/3.11 jobs past the limit, and the jobs were cancelled rather than failed.

Measured on main:

Commit 3.10 3.11 3.12
bc0a9ce 18m 15m 16m
14d18e4 20m 20m 18m
49f44e9 20m 23m 19m

Proposal: run the suite in parallel with pytest-xdist (-n auto), or shard it across matrix jobs, rather than raising the timeout. Tests that depend on process-global state (environment, cwd, singleton lock, launch-directory capture) would need to be marked to run serially or isolated per worker. Raising the limit only postpones the problem.

Not urgent before 3.0.0, but every large PR will hit it.

Activity

  1. ViperJuice commented on Oct 8, 2026

    @ViperJuice
    CollaboratorAuthor

    Stopgap merged in #384 (f15c975): the test job timeout and the workflow guard ceiling are now 45 minutes. This issue stays open for the real fix, parallelising the suite.

  2. ViperJuice commented on Oct 10, 2026

    @ViperJuice
    CollaboratorAuthor

    Measurement from #388 (the #297 validation-echo implementation): it adds about 274 s to the 3.10 suite on ai, with coverage (base f9f4bd0 1030 s, head 482f281 1304 s). That projects to about 6–7 more minutes per CI test job, roughly 30 min in total against the 45-min limit from #384. About 51 s of that is spread over existing subprocess tests, because import pmcp now imports the MCP SDK. The headroom is shrinking, so parallelising the suite here is the durable fix.

  3. ViperJuice commented on Oct 17, 2026

    @ViperJuice
    CollaboratorAuthor

    Resolved on main by #399 (1dd222f), following the Python 3.12 matrix trim in #397 (2944b1e). The test job now runs pytest-xdist with -n auto --dist loadfile. Remaining timing-oracle robustness work stays tracked separately in #400 and #311.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions