From 00f11a9e8f02bb8960be23ea4c67bd6b65baceb4 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 6 Aug 2025 06:15:36 +0000 Subject: [PATCH] Additional instrumentation around global counter events. --- src/core/utils/two_phase_counter.rs | 4 +++- src/service/globals/data.rs | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/utils/two_phase_counter.rs b/src/core/utils/two_phase_counter.rs index 214351a9..9489790a 100644 --- a/src/core/utils/two_phase_counter.rs +++ b/src/core/utils/two_phase_counter.rs @@ -150,7 +150,7 @@ impl Result + Sync> State { .remove(index) .expect("sequence number at index must be removed"); - debug_assert!(removed == id, "sequence number removed must match id"); + debug_assert_eq!(removed, id, "sequence number removed must match id"); // release only occurs when the oldest value retires if index != 0 { @@ -160,6 +160,8 @@ impl Result + Sync> State { // release occurs for the maximum retired value let release = if self.pending.is_empty() { self.dispatched } else { id }; + debug_assert!(release >= id, "sequence number released must not be less than id"); + (self.release)(release).expect("release callback should not error"); } diff --git a/src/service/globals/data.rs b/src/service/globals/data.rs index 49405e04..8a946458 100644 --- a/src/service/globals/data.rs +++ b/src/service/globals/data.rs @@ -72,12 +72,14 @@ impl Data { #[inline] pub(super) fn pending_count(&self) -> Range { self.counter.range() } + #[tracing::instrument(name = "retire", level = "debug", skip(sender))] fn handle_retire(sender: &Sender, count: u64) -> Result { let _prev = sender.send_replace(count); Ok(()) } + #[tracing::instrument(name = "dispatch", level = "debug", skip(db, global))] fn store_count(db: &Arc, global: &Arc, count: u64) -> Result { let _cork = db.cork(); global.insert(COUNTER, count.to_be_bytes());