Repository navigation
Conversation
This was referenced Oct 6, 2026
Open
ciaranra
force-pushed
the
fix/midshot-reset-reclaims-interface
branch
from
October 6, 2026 23:09
7dfeb35 to
97e5802
Compare
ciaranra
force-pushed
the
fix/engine-drop-joins-worker
branch
from
October 6, 2026 23:09
1941880 to
f62d543
Compare
ciaranra
force-pushed
the
fix/engine-drop-joins-worker
branch
from
October 7, 2026 01:40
f62d543 to
88d5a60
Compare
ciaranra
force-pushed
the
fix/midshot-reset-reclaims-interface
branch
from
October 7, 2026 03:34
97578fb to
ac6ea44
Compare
ciaranra
force-pushed
the
fix/engine-drop-joins-worker
branch
from
October 7, 2026 03:34
88d5a60 to
6aea8d9
Compare
ciaranra
force-pushed
the
fix/midshot-reset-reclaims-interface
branch
from
October 7, 2026 05:15
ac6ea44 to
8c2c116
Compare
ciaranra
force-pushed
the
fix/engine-drop-joins-worker
branch
from
October 7, 2026 05:15
6aea8d9 to
f29eda9
Compare
ciaranra
force-pushed
the
fix/engine-drop-joins-worker
branch
from
October 7, 2026 23:10
f29eda9 to
d9d10d3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1059. Builds on #1057 (merged): reset cancellation and the abort export it reuses.
Problem
QisEngineruns a user program on a persistent dynamic worker thread. NeitherQisEnginenorPersistentDynamicWorkerimplementedDrop. Dropping the engine therefore detached the thread, and a program in the middle of a shot kept running after the engine was gone. The worker's field comment said the handle was "joined on drop", which was not true.Change
QisEngine::droprequests cancellation of a running shot through the shot's sync handle: the Cancel a running dynamic shot on reset and reclaim the worker-owned interface #1057 abort export, aimed at the engine's own execution context. It does nothing else. It performs no runtime or interface reset and destroys no execution context, so the deliberate shutdown mitigations inSeleneRuntime::DropandQisHeliosInterface::Dropare unchanged. A failed abort is logged.PersistentDynamicWorker::dropowns the thread's lifecycle:Tests
Each test was checked against a targeted mutation that removes the behaviour it guards. The witness for "the thread exited" is a test-only counter that a guard decrements at the very end of the worker thread. Counts are per engine, shared through
Clone, so tests running concurrently in one binary stay isolated.Verification
Run locally on Linux:
cargo test --locked -p pecos-qis(with and without--features selene-runtimes) and-p pecos-engines, withRUST_BACKTRACE=1cargo clippy --workspace --all-targets --all-features -- -D warnings,cargo fmt --all -- --check, and pre-commit on the changed filesjust build-debug,just pytest-ci-coreandjust rslib-rust-teston the first commit; the follow-up commit changes only tests and a log message.