Skip to content

Commit 8594807

Browse files
committed
Fix: metrics has to be updated last
Otherwise the application receives updated metrics while the internal raft state is still stale.
1 parent 2c3024c commit 8594807

File tree

2 files changed

+2
-3
lines changed

2 files changed

+2
-3
lines changed

openraft/src/core/raft_core.rs

-1
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,6 @@ impl<C: RaftTypeConfig, N: RaftNetworkFactory<C>, S: RaftStorage<C>> RaftCore<C,
971971
Ok(())
972972
}
973973

974-
// TODO: make it private
975974
#[tracing::instrument(level = "debug", skip(self, msg), fields(state = debug(self.engine.state.server_state), id=display(self.id)))]
976975
pub(crate) async fn handle_api_msg(&mut self, msg: RaftMsg<C, N, S>) -> Result<(), Fatal<C::NodeId>> {
977976
tracing::debug!("recv from rx_api: {}", msg.summary());

openraft/src/core/replication.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ impl<'a, C: RaftTypeConfig, N: RaftNetworkFactory<C>, S: RaftStorage<C>> LeaderS
122122
}
123123
};
124124

125-
self.update_replication_metrics(target, matched);
126-
127125
self.core.engine.update_progress(target, Some(matched));
128126
self.run_engine_commands(&[]).await?;
129127

128+
self.update_replication_metrics(target, matched);
129+
130130
Ok(())
131131
}
132132

0 commit comments

Comments
 (0)