Skip to content

ci: full-suite (ci-full) validation for #23484 — BatchChonkVerifier handle teardown#23901

Closed
AztecBot wants to merge 8 commits into
nextfrom
cb/babysit-23484-ci-full
Closed

ci: full-suite (ci-full) validation for #23484 — BatchChonkVerifier handle teardown#23901
AztecBot wants to merge 8 commits into
nextfrom
cb/babysit-23484-ci-full

Conversation

@AztecBot

@AztecBot AztecBot commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

CI-only vehicle to run the ci-full suite (incl. e2e_prover_full) against the exact head of #23484, because the ci-full label can't be applied to that PR from this session.

Contains the full #23484 changeset plus the fix commit 0cc1020 ("ensure BatchChonkVerifier.stop always tears down handles"). The real fix lives on #23484do not merge this PR; it exists only to exercise prover-full under ci-full and confirm the prover-full hang is resolved.

Ref: #23484


Created by claudebox · group: slackbot

AztecBot and others added 7 commits May 29, 2026 17:24
Random-linear-combine (via a fresh challenge gamma) the G_0 binding check
and the main IPA relation in IPA::batch_reduce_verify so the batch performs
a single SRS MSM / IPA commitment instead of two.
Bound the graceful-stop phase (send-queue flush and the chonkBatchVerifierStop
native RPC) with a timeout and move FIFO-reader/socket/native-process teardown
into a finally block, so an unresponsive native backend can never leave the
FIFO read stream (a blocking threadpool read that cannot be unref'd) or the
unix socket open. This keeps the host process — e.g. the e2e prover-full test —
exiting cleanly instead of hanging at teardown. Also unref the per-request
result timeout so an orphaned request can't hold the event loop open.
@AztecBot AztecBot added ci-draft Run CI on draft PRs. ci-full Run all master checks. claudebox Owned by claudebox. it can push to this PR. labels Jun 5, 2026
…n exit

The FIFO result reader used fs.createReadStream, which services the pipe with a
blocking threadpool read. destroy() cannot cancel that read while a writer is
still attached, so if the native bb verifier process outlives teardown (e.g. it
has not yet exited after SIGTERM) the read stays parked and keeps the host
process alive — the e2e prover-full test passes all assertions but Jest 'did not
exit' and is eventually killed (exit 124).

Open the FIFO O_NONBLOCK and read it through a libuv pipe handle (net.Socket)
instead. Reads are then epoll-based, so stop()'s destroy() releases the handle
immediately regardless of the writer, letting the process exit cleanly.
@AztecBot AztecBot force-pushed the cb/babysit-23484-ci-full branch from e1019c9 to ae24e75 Compare June 5, 2026 02:34
@ludamad ludamad closed this Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. ci-full Run all master checks. claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants