Skip to content

Preserve the experiment caller deadline through campaign startup - #616

Open
CaelmBleidd wants to merge 2 commits into
caelmbleidd/pbt-experiment-driverfrom
caelmbleidd/pbt-runner-deadline-handoff
Open

CaelmBleidd wants to merge 2 commits into
caelmbleidd/pbt-experiment-driverfrom
caelmbleidd/pbt-runner-deadline-handoff

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

The experiment runner passed the campaign a fresh relative allocation, while its own cutoff had already started. Creating the JVM process could also extend communicate beyond that cutoff. The caller now passes the same absolute runner deadline through process creation and into campaign-file, with a 1000 ms publication reserve inside it. The class replay reserve is subtracted once; native replay batches share the original total cutoff.

Keep the original campaign configuration and controls. Existing relative run_process callers keep their behavior. Saved late, killed, and incomplete artifacts remain available with diagnostics and omissions, but receive no primary or native replay credit. Exit 1 remains eligible only for a confirmed original property violation, matching campaignExitCode.

Stack base: #586 at 6e632337a9106fdfe84b29dc95c4356df864ed82. Runtime dependency: #615, which adds externalDeadlineEpochMillis and publicationReserveMillis to the CLI request. This PR deliberately contains only the Python caller and its focused tests; its standalone checks do not establish combined CLI end-to-end behavior.

Validation: 15 focused Python tests pass, including fake-clock/Popen startup charging, delays between wall/monotonic clock reads, exhausted and shared cutoffs, reserve/control preservation, legitimate exit-1 faults, retained incomplete/late/killed evidence, native rejection, and invalid JSON. git diff --check passes. No comparative campaign was run and frozen results were not modified.

Refs #613.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant