Skip to content

fix(smt): do not wait for provers whose interrupt was lost - #1150

Merged
strub merged 1 commit into
mainfrom
fix/smt-interrupt-race
Oct 6, 2026
Merged

strub merged 1 commit into
mainfrom
fix/smt-interrupt-race

Conversation

@strub

@strub strub commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

When a prover answers, the remaining ones are interrupted and waited
for. why3server kills the process group of a prover, but that group
is created by the forked child itself. An interrupt sent right after
the run request (typically when the first prover already answered
while the next task was being prepared) can be handled before the
group exists: the kill is silently lost and smt waits until the
loser reaches its own time limit.

Re-send the interrupt until the prover is reported as finished,
instead of blocking on the first one. Retries start after 10ms and
back off exponentially up to 1s.

@strub strub self-assigned this Oct 6, 2026
@strub strub added the yolo-pr Don't bother reviewing, I will merge label Oct 6, 2026
When a prover answers, the remaining ones are interrupted and waited
for. why3server kills the process group of a prover, but that group
is created by the forked child itself. An interrupt sent right after
the run request (typically when the first prover already answered
while the next task was being prepared) can be handled before the
group exists: the kill is silently lost and `smt` waits until the
loser reaches its own time limit.

Re-send the interrupt until the prover is reported as finished,
instead of blocking on the first one. Retries start after 10ms and
back off exponentially up to 1s.
@strub
strub force-pushed the fix/smt-interrupt-race branch from 12f95e6 to 5f40c06 Compare October 6, 2026 09:56
@strub
strub merged commit cdb7f4e into main Oct 6, 2026
19 checks passed
@strub
strub deleted the fix/smt-interrupt-race branch October 6, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

yolo-pr Don't bother reviewing, I will merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant