Skip to content

fix(tests): main's 3.14 and 3.15 legs time out on the ethernet/header-only-unknown-type/cut7 round trip #1736

Closed

Description

@JarryShaw

Describe the bug
main's Unit Tests fail one subtest on two consecutive runs. In tests/protocols/link/test_link_edge_roundtrip_unit.py::LinkEdgeRoundTripTests::test_cut_is_rejected_or_byte_exact, case ethernet/header-only-unknown-type/cut7 exceeds the test's 30 s per-case timeout:

sha leg result job
fb7027b25 (#1725) Python 3.14 TIMEOUT: did not finish within 30s 115957996493
59dd2613d (#1728) Python 3.15 REBUILD: TimeoutError: did not finish within 30s 115968208378

Every other test in both runs passes (1 failed, 4341 passed / 1 failed, 4345 passed). The previous run, on 51cd24c70, was green on both legs. #1725 touches only CI files, so the cause is either a slow path in the parse or rebuild of that cut, sitting close to the 30 s cap and pushed over it by runner load, or a hang. That has not been measured yet.

Expected behavior
The case finishes well inside its cap, so main stays green.

Additional context
A worker is root-causing it. The fix needs a test that fails without it.

Activity

  1. added
    fixPull requests that fix a defect (fix: subject prefix)
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 14, 2026
  2. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 14, 2026
  3. JarryShaw commented on Oct 14, 2026

    @JarryShaw
    OwnerAuthor

    Fixed on main in e530f39ad, a test-only push. The cause was in the test harness, not pcapkit.

    • _edge_roundtrip.py started each case's 30 s deadline before importing the case's class. setUp purges pcapkit, so the first case in each class, cut7 here, carried the whole package import (about 480 ms) inside a budget meant for a case that takes about 4 ms.
    • On a starved runner, that import alone ran past 30 s. A Sonnet review reproduced the CI message exactly on main by pinning the run to about 1% of a CPU. The fix passed under the same load.
    • test_edge_roundtrip_deadline_1736_unit.py checks that the module is loaded before the deadline starts. It fails 2 of 2 on the old harness and passes on the fix. Parse and rebuild outputs for all 1015 edge cases are byte-identical before and after.
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

    fixPull requests that fix a defect (fix: subject prefix)

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions