Skip to content

Simulation-based regression tests for #801 (blocked on timely#810)#805

Draft
frankmcsherry wants to merge 1 commit into
TimelyDataflow:master-nextfrom
frankmcsherry:sim-801-regression
Draft

Simulation-based regression tests for #801 (blocked on timely#810)#805
frankmcsherry wants to merge 1 commit into
TimelyDataflow:master-nextfrom
frankmcsherry:sim-801-regression

Conversation

@frankmcsherry

Copy link
Copy Markdown
Member

Deterministic-simulation regression tests for #801, runnable today but blocked on TimelyDataflow/timely-dataflow#810 — parked as a draft so the work is visible and resumable.

To land after timely ships #810:

  1. In the workspace Cargo.toml, replace the git dependency on frankmcsherry/timely-dataflow (branch simulation) with the crates-io timely version that includes timely::simulate.
  2. Rebase on master-next, confirm cargo test -p differential-dataflow (140 tests as of this branch), and mark ready for review.

Context: #801 (the bug), #802 (the fix this regresses against), timely#810 (the simulation harness). With the current git dependency the branch builds and the full suite passes, so CI here should be green modulo the dependency's acceptability.

🤖 Generated with Claude Code

tests/sim_scc.rs runs the strongly_connected_at computation of the TimelyDataflow#801 repro
on timely::simulate: all workers on one thread, message delivery driven by a
seeded schedule of step/deliver decisions with fair stretches and chaos
windows, compared against a sequential SCC oracle. Before the TimelyDataflow#802 join fix,
the default configuration (one worker, 100 input rounds, seed 0) livelocked
deterministically -- the loop diverged, producing corrections at unbounded
iteration indices -- and wider sweeps failed on every seed; with the fix it
completes and matches the oracle in about a second. The seeded grind and
knobs (SEED/ROUNDS/CHUNK/PEERS/FAIR/CHAOS_*) remain for exploration, with the
grind #[ignore]d.

tests/prop_at.rs exercises propagate_at alone (two-level product timestamps)
against a min-label-reachability oracle: the negative control -- it passed
throughout the TimelyDataflow#801 investigation, which localized the bug to the nested
(three-level) setting.

BLOCKED, NOT MERGEABLE AS-IS: timely::simulate is
TimelyDataflow/timely-dataflow#810, and this branch points the workspace at
that PR's branch (frankmcsherry/timely-dataflow, branch "simulation") via a
git dependency. Once a timely release includes #810, restore the crates-io
timely dependency in Cargo.toml and open this as a real PR.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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