Skip to content

ci(experimental): give the GraalPy leg room to finish (#2739) - #2741

Merged
JarryShaw merged 1 commit into
mainfrom
ci/2739-graalpy-room
Nov 3, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
ci/2739-graalpy-room

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • ci — workflows or build tooling

Description of your pull request and other information

After #2720 split the long shards, the first uninterrupted GraalPy run on main lost no workers. It then timed out at 110 minutes with no test failures: job 125752017215, exit 124, interrupted 224 s into the run over the rest. The 20 split shards took 6386 s on a runner 1.46–1.86× slower than the one the split was sized on.

  • Run unit tests step: the timeout rises to 180 minutes. The step cap is now 190 and the job cap 210, keeping the old gaps. The SIGKILL threshold and the warning text follow. The projected leg is about 7110–7340 s, so this leaves about 1.5× headroom.
  • SHARDS: the two slowest shards are split again, sized from that job's JUnit seconds. tests/protocols/internet gains test_igmp* (693 s in that job) and tests/protocols/application gains test_tls* (835 s). Every test still runs exactly once: a CPython collection gives the same node-id set for the old and new SHARDS.
  • Pins: the cap pins in tests/project and the test: sort the remaining GraalPy-only failures into defects and gates #1963 note in workflows.rst match.

Closes #2739

On ab7be2f, job 125752017215 lost no GraalPy worker but hit the
110-minute timeout during the rest: its shards took 6386 s, on a runner
1.46-1.86 times slower than #2713's estimates assumed, and
tests/protocols/internet and tests/protocols/application ran 11.5 and
13.9 minutes, their largest worker at 2.25 and 2.48 GiB RSS.

- Run unit tests: timeout 110m -> 180m, step cap 120 -> 190, job cap
  140 -> 210, about 1.5 times the leg's 7110-7340 s there (estimate);
  Containment summary's timeout warning and 137 threshold follow.
- SHARDS: split those two at test_igmp* and test_tls* by that job's
  JUnit seconds, so no shard but tests/const takes as many.
- Pins of the caps and the timeout in tests/project follow; the #1963
  and timeout notes in workflows.rst gain the measurements.

Collecting the tier through util/pytest_shards.py on CPython gives the
same 3058 node ids, none twice, for the old and new SHARDS. tests/project
passes, each module in its own process; the moved pins fail on the base
workflow.
@JarryShaw JarryShaw added this to the PyPCAPKit v1.6 milestone Nov 3, 2026
@JarryShaw JarryShaw added ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 3, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Nov 3, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 90fd72db5, from a Sonnet review.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Coverage: 94.45% (unit tier, Python 3.15, 90fd72db5, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 21062 175 2914 156 98.58%
pcapkit/corekit 2861 76 916 37 96.80%
pcapkit/dumpkit 282 3 100 3 98.43%
pcapkit/foundation 3496 26 1214 32 98.77%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 22613 150 5862 123 99.03%
pcapkit/toolkit 961 26 342 8 96.62%
pcapkit/utilities 533 7 144 5 98.23%
pcapkit/vendor 5590 2286 1280 214 55.75%

Per-file detail: the coverage-html artifact of this run.

@JarryShaw

Copy link
Copy Markdown
Owner Author

The Experimental run at 90fd72db5 (run 41603337237) finished the GraalPy leg clean. The tests step took about 77 minutes and there are no warning annotations. On main's ab7be2fb0 run, the same leg was cut off at the 110-minute limit (exit 124). This runner was faster, so the 180-minute limit leaves plenty of room.

@JarryShaw
JarryShaw merged commit 36c4922 into main Nov 3, 2026
65 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Nov 3, 2026
@JarryShaw
JarryShaw deleted the ci/2739-graalpy-room branch November 3, 2026 16:32
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 3, 2026
JarryShaw added a commit that referenced this pull request Nov 3, 2026


- Breaking: a short CALIPSO, SMF_DPD or MPL Opt Data Len raises ProtocolError,
  where 1.5.x raised FieldValueError, and a cut after the type octet reads
  short (#2737), a new entry; AppType.__registries__ is an Info, into the
  #2734 entry (#2735).
- Changed: const packages import their enumerations lazily through
  pcapkit.utilities.lazy.lazy_exports (#2735); the docs extra pins
  sphinx-autodoc-typehints 3.17.4 (#2742), as 1.5.0 recorded its pin.
- Fixed: the dumps keep a field renamed for clashing with an Info builtin
  name (#2736).
- Folded: the GraalPy leg's timeout and shards into the CI-legs entry
  (#2741); the #2735 and #2737 rulings into the conventions entry.
- No entry for the docs-only #2744 and #2746.
- 1.6.0's :func:`bytes` role is :class:`bytes`, so the changelog pages build
  with no nitpicky warning. Old values measured against v1.5.1.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Pull requests that change CI or workflow configuration (ci: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ci(experimental): the GraalPy leg times out at 110 minutes after the shard split

1 participant