Skip to content

Flaky: wall-clock-bound tests fail under CI load (regex_redos, many_move_statements_stay_linear) #4477

Closed

Description

@squid-protocol

tests/cobol_mainframe/test_tool_regex_redos.py::test_bounded_heavy_linear_pattern_is_not_an_offender failed in CI on #4471 (run 37331076568). The PR adds no regex, and the test passed 3/3 locally under heavy-run.sh. It measures a hard-coded pattern with a timing threshold, so it is flaky under CI load. Make it deterministic (count steps or use a generous relative threshold) rather than wall-clock bound. Don't just raise the limit blindly.

🤖 Generated with Claude Code

Activity

  1. added
    bugUnintended behavior or logic failure in the engine
    testingUnit, integration, and E2E pipeline verification
    priority: lowUI tweaks, documentation, and minor optimizations
    on Oct 5, 2026
  2. squid-protocol commented on Oct 5, 2026

    @squid-protocol
    OwnerAuthor

    Second wall-clock flake: tests/core_engine/test_cics_resources.py::test_many_move_statements_stay_linear failed on #4471 in CI at 2.03s against a 2.0s limit (run 37338266687). Locally it takes 0.32–0.34s on both main and the PR branch (3 runs each), so it's runner load, not a regression. Fix both tests the same way: a deterministic measure (operation counts, or a ratio between two input sizes to prove linearity) instead of an absolute wall-clock bound.

  3. changed the title [-]Flaky: test_tool_regex_redos bounded-heavy-linear test is wall-clock bound and fails under CI load[/-] [+]Flaky: wall-clock-bound tests fail under CI load (regex_redos, many_move_statements_stay_linear)[/+] on Oct 5, 2026
  4. squid-protocol commented on Oct 6, 2026

    @squid-protocol
    OwnerAuthor

    Another instance on main, 2026-10-06 (run 37487584430, windows-latest 3.12 only; 3.10/3.11 passed on the same SHA 1797570): test_tool_regex_redos.py::test_no_new_offenders flagged cobol_graveyard_finder.py:112 as quadratic (8.8x time for 4x input). That regex has not changed since 2026-10-04 (#4291). The growth-ratio check is wall-clock bound, so it misfires on a loaded runner, the same class as this issue.

    🤖 Generated with Claude Code

  5. squid-protocol commented on Oct 6, 2026

    @squid-protocol
    OwnerAuthor

    Third sighting, 2026-10-06: a local pr_gates suite run for PR #4580 under multi-agent load flagged cobol_jcl_forge.py, cobol_to_java_uow_forge.py and proof_reach.py in test_tool_regex_redos.py::test_no_new_offenders. The PR touches none of them, and it now misfires locally as well as on CI. This costs agents a gate rerun per PR, so it's worth fixing soon.

    🤖 Generated with Claude Code

  6. squid-protocol commented on Oct 10, 2026

    @squid-protocol
    OwnerAuthor

    Another one in this family: tests/core_engine/test_prism.py::test_prism_suppression_regex_bomb failed full-suite part 2/3 on #4830 (2026-10-10) at 1.006 s against its 1.0 s bound, on a loaded runner. The CI digest/shepherd (#4790) now lists it with the other wall-clock tests as a known flake, so it gets one rerun instead of a "real failure" note. The real fix here (a relative bound, or a step-count/complexity assertion instead of wall time) still applies to all three.

    🤖 Generated with Claude Code

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

    bugUnintended behavior or logic failure in the enginepriority: lowUI tweaks, documentation, and minor optimizationsscope:infraCI, tooling, churn/factory, docs infrastructuretestingUnit, integration, and E2E pipeline verification

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions