refactor(#3034): rename PostSwap to RebuildBookkeeping
It reads as a swap thing but is post-*rebuild* bookkeeping: rev marker, forge and matrix sync, manager kick, container rescan, meta-inputs snapshot. Wire label follows (`post_swap` -> `rebuild_bookkeeping`); the graph view renders whatever label it is sent, so nothing keys on the old string. Also corrects a doc the previous commit falsified: this node's comment still said it declares the agent lease as a re-entrant borrow, after that declaration moved to the brace. Clippy and the whole suite pass over a stale doc comment, so it took reading the file to find. Verified by grepping the new name for places it has no business being, which caught the sed rewriting a *historical* test name in a `// Replaces ...` comment - reverted, since prose about the past must keep its old spelling.
This commit is contained in:
parent
31a1853a45
commit
a0790e4e49
5 changed files with 56 additions and 38 deletions
|
|
@ -418,7 +418,11 @@ fn rebuild_chain_is_declared_serial() {
|
|||
&[("prebuild", "done")]
|
||||
),
|
||||
row("swap", Some("stop_for_update"), &[]),
|
||||
row("post_swap", Some("stop_for_update"), &[("swap", "done")]),
|
||||
row(
|
||||
"rebuild_bookkeeping",
|
||||
Some("stop_for_update"),
|
||||
&[("swap", "done")]
|
||||
),
|
||||
row(
|
||||
"reconcile",
|
||||
None,
|
||||
|
|
@ -500,7 +504,11 @@ fn graceful_rebuild_chain_drains_before_stopping() {
|
|||
&[("prebuild", "done"), ("drain", "done")]
|
||||
),
|
||||
row("swap", Some("stop_for_update"), &[]),
|
||||
row("post_swap", Some("stop_for_update"), &[("swap", "done")]),
|
||||
row(
|
||||
"rebuild_bookkeeping",
|
||||
Some("stop_for_update"),
|
||||
&[("swap", "done")]
|
||||
),
|
||||
row(
|
||||
"reconcile",
|
||||
None,
|
||||
|
|
@ -534,7 +542,7 @@ fn non_graceful_rebuild_has_no_signal_or_drain() {
|
|||
"prebuild",
|
||||
"stop_for_update",
|
||||
"swap",
|
||||
"post_swap",
|
||||
"rebuild_bookkeeping",
|
||||
"reconcile"
|
||||
],
|
||||
"exactly seven nodes, and none of them is signal or drain"
|
||||
|
|
@ -713,7 +721,11 @@ fn multi_agent_start_one_dag_folds_per_agent_stale_rebuild() {
|
|||
&[("prebuild", "done")]
|
||||
),
|
||||
row("swap", Some("stop_for_update"), &[]),
|
||||
row("post_swap", Some("stop_for_update"), &[("swap", "done")]),
|
||||
row(
|
||||
"rebuild_bookkeeping",
|
||||
Some("stop_for_update"),
|
||||
&[("swap", "done")]
|
||||
),
|
||||
row(
|
||||
"reconcile",
|
||||
None,
|
||||
|
|
@ -869,21 +881,21 @@ fn rebuild_chain_nodes_suppress_crash_watch() {
|
|||
// individually legible, and the arrangement was the only reason this module
|
||||
// needed to claim and complete nodes.
|
||||
|
||||
/// The swap-success path: `Swap` ok → the `AfterOk` `PostSwap` (bookkeeping
|
||||
/// The swap-success path: `Swap` ok → the `AfterOk` `RebuildBookkeeping` (bookkeeping
|
||||
/// tail) runs, and only then does `Reconcile` fire — serialized behind
|
||||
/// `PostSwap` (not racing it) because `Reconcile` deps `AfterAny(PostSwap)`.
|
||||
/// `RebuildBookkeeping` (not racing it) because `Reconcile` deps `AfterAny(RebuildBookkeeping)`.
|
||||
#[test]
|
||||
fn rebuild_reconcile_waits_for_the_whole_build_subtree() {
|
||||
// Replaces `swap_ok_runs_post_swap_before_reconcile` and
|
||||
// `swap_failure_still_runs_reconcile`, which walked the same DAG with the
|
||||
// swap succeeding in one and failing in the other.
|
||||
//
|
||||
// The interesting claim was "Reconcile must wait for PostSwap, not race
|
||||
// The interesting claim was "Reconcile must wait for RebuildBookkeeping, not race
|
||||
// it" — and it does *not* come from an edge between them. `reconcile` deps
|
||||
// `AfterAny(agent_window)`, while `post_swap` sits inside the brace's
|
||||
// subtree (post_swap → stop_for_update → agent_window). A parent is not
|
||||
// `AfterAny(agent_window)`, while `rebuild_bookkeeping` sits inside the brace's
|
||||
// subtree (rebuild_bookkeeping → stop_for_update → agent_window). A parent is not
|
||||
// terminal until its subtree is, so the brace cannot satisfy that edge while
|
||||
// post_swap is outstanding. **The ordering is the parent chain, not a
|
||||
// rebuild_bookkeeping is outstanding. **The ordering is the parent chain, not a
|
||||
// dependency.**
|
||||
//
|
||||
// Both facts are asserted in `rebuild_chain_is_declared_serial`; this test
|
||||
|
|
@ -907,7 +919,7 @@ fn rebuild_reconcile_waits_for_the_whole_build_subtree() {
|
|||
.unwrap_or_else(|| panic!("{kind} node"))
|
||||
.parent
|
||||
};
|
||||
assert_eq!(parent_of("post_swap"), Some("stop_for_update"));
|
||||
assert_eq!(parent_of("rebuild_bookkeeping"), Some("stop_for_update"));
|
||||
assert_eq!(parent_of("stop_for_update"), Some("agent_window"));
|
||||
assert_eq!(
|
||||
shape
|
||||
|
|
@ -917,13 +929,13 @@ fn rebuild_reconcile_waits_for_the_whole_build_subtree() {
|
|||
.after,
|
||||
vec![("agent_window", "done|failed|skipped".to_owned())],
|
||||
"reconcile gates on the brace's roll-up, which covers the whole \
|
||||
subtree — including post_swap — and runs on failure too"
|
||||
subtree — including rebuild_bookkeeping — and runs on failure too"
|
||||
);
|
||||
}
|
||||
|
||||
// `swap_failure_still_runs_reconcile` lived here.
|
||||
//
|
||||
// It asserted that a failed swap leaves `post_swap` `Skipped` and `swap`
|
||||
// It asserted that a failed swap leaves `rebuild_bookkeeping` `Skipped` and `swap`
|
||||
// `Failed`, and that reconcile still runs. All three are hive_jobq's cascade
|
||||
// (`failed_after_ok_dep_cancels_dependents_but_after_any_still_runs`), and the
|
||||
// "says so on the wire" half turned out to be nothing: `snapshot` fills
|
||||
|
|
@ -1300,7 +1312,11 @@ fn deploy_apply_grows_rebuild_subgraph_and_finalizes_after_it() {
|
|||
&[("prebuild", "done")]
|
||||
),
|
||||
row("swap", Some("stop_for_update"), &[]),
|
||||
row("post_swap", Some("stop_for_update"), &[("swap", "done")]),
|
||||
row(
|
||||
"rebuild_bookkeeping",
|
||||
Some("stop_for_update"),
|
||||
&[("swap", "done")]
|
||||
),
|
||||
row(
|
||||
"reconcile",
|
||||
None,
|
||||
|
|
@ -1539,7 +1555,7 @@ fn perm_change_shape_prefixes_rebuild_chain() {
|
|||
"prebuild",
|
||||
"stop_for_update",
|
||||
"swap",
|
||||
"post_swap",
|
||||
"rebuild_bookkeeping",
|
||||
"reconcile",
|
||||
// the ok / !ok tail pair
|
||||
"emit_rebuilt",
|
||||
|
|
|
|||
Loading…
Reference in a new issue