Merge branch 'master'

Reconciles the tick profiler with this line's extra tick step. `next`
drives `resend_pending_fmp_rekey_msg3` from the tick arm and the master
line does not, so the step table gains a variant here and the arm gains
one more instrumented call.

The pinned row-count test is what caught it: it failed on the merge
rather than letting the emitted table and the call sites drift apart
silently, which is the failure mode it was written for.
This commit is contained in:
Johnathan Corgan
2026-07-28 01:39:47 +00:00
17 changed files with 1619 additions and 43 deletions
+5
View File
@@ -2221,6 +2221,10 @@ impl Node {
// which the helper emits at the Dns→rest seam.
self.execute_teardown(actions, true).await;
// Stop and join the profile writer thread if a capture is armed.
// Idempotent, and compiled away in a default build.
crate::instr::shutdown();
self.supervisor.state = NodeState::Stopped;
info!(state = %self.supervisor.state, "Node stopped");
Ok(())
@@ -2475,6 +2479,7 @@ impl Node {
info!(state = %self.supervisor.state, "Node stopping (drain complete)");
let stop_actions = self.supervisor.fsm.step(Event::DrainDeadlineElapsed);
self.execute_teardown(stop_actions, false).await;
crate::instr::shutdown();
self.supervisor.state = NodeState::Stopped;
info!(state = %self.supervisor.state, "Node stopped");
} else if let Err(e) = self.stop().await {