Skip to content

Commit 53df0fe

Browse files
tcoratgerclaude
andauthored
ci(prod-vectors): unpin rayon and lower xdist workers for prod fill (leanEthereum#920)
The prod fixture fill spends ~56m almost entirely in the real_crypto smoke vectors, which build genuine production XMSS proofs. Each proof parallelizes internally with rayon, but the job pinned RAYON_NUM_THREADS=1 while running one xdist worker per core, so every heavy proof was starved to a single thread. Add a FILL_WORKERS knob to the canonical fill recipe (default auto, so the test-scheme job is unchanged) and set it to 2 for the prod job, with rayon left unpinned. A heavy proof can now spread across cores instead of one thread, while two workers still overlap proofs and clear the mocked backlog. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 2810c20 commit 53df0fe

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

.github/workflows/prod-vectors.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,11 @@ jobs:
9494

9595
- name: Fill production test fixtures
9696
env:
97-
# RAYON_NUM_THREADS=1 keeps the runner from oversubscribing cores by giving each xdist worker one rayon thread.
98-
RAYON_NUM_THREADS: "1"
97+
# Only the real_crypto smoke vectors run genuine production XMSS proofs.
98+
# Each proof parallelizes internally with rayon, so few heavy tasks dominate the run.
99+
# Two xdist workers overlap the heavy proofs and chew through the mocked backlog.
100+
# Leaving rayon unpinned lets each proof spread across cores instead of one thread.
101+
FILL_WORKERS: "2"
99102
run: just fill-ci --scheme=prod
100103

101104
- name: Bundle keys with fixtures

Justfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,11 @@ test-consensus *args:
8686
uv run --group test pytest -n auto --maxprocesses=10 --durations=10 --dist=worksteal tests/node/networking "$@"
8787

8888
# Canonical CI fixture run; contributors should use `uv run fill` directly.
89+
# FILL_WORKERS overrides the xdist worker count (defaults to one per core).
90+
# The prod scheme lowers it so real proofs are not starved of rayon threads.
8991
[group('tests'), private]
9092
fill-ci *args:
91-
uv run --group test fill --fork=Lstar --clean -n auto --dist=worksteal "$@"
93+
uv run --group test fill --fork=Lstar --clean -n "${FILL_WORKERS:-auto}" --dist=worksteal "$@"
9294

9395
# Standalone determinism audit: regenerate vectors twice under different hash seeds and diff.
9496
# The fill command already gates the order_sensitive subset on every run.

0 commit comments

Comments
 (0)