From 9b8b837ee72d3a26de1092bc49498e91643c96c2 Mon Sep 17 00:00:00 2001 From: ApiliumDevTeam Date: Thu, 9 Jul 2026 15:58:26 +0200 Subject: [PATCH] fix(raft): drop the unused NodeResolver field from CortexNetworkFactory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit openraft hands new_client the target CortexNode (with its address) directly from cluster membership, so the factory never performed a resolver lookup — the field was dead (dead_code warning) and the cluster_init self-registration was write-only. Remove both; NodeResolver stays as a pub type. No behavior change. --- crates/aingle_cortex/src/cluster_init.rs | 13 +------------ crates/aingle_raft/src/network.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/crates/aingle_cortex/src/cluster_init.rs b/crates/aingle_cortex/src/cluster_init.rs index cd65201..2486d01 100644 --- a/crates/aingle_cortex/src/cluster_init.rs +++ b/crates/aingle_cortex/src/cluster_init.rs @@ -518,21 +518,10 @@ pub async fn init_cluster( std::sync::Arc::new(sm) }; - let resolver = std::sync::Arc::new(aingle_raft::network::NodeResolver::new()); let node_id = config.node_id; - resolver - .register( - node_id, - aingle_raft::CortexNode { - rest_addr: bind_addr.to_string(), - p2p_addr: p2p_addr.to_string(), - }, - ) - .await; - let rpc_sender = std::sync::Arc::new(HttpRaftRpcSender::new(config.secret.clone(), config.tls)); - let network = aingle_raft::network::CortexNetworkFactory::new(resolver, rpc_sender); + let network = aingle_raft::network::CortexNetworkFactory::new(rpc_sender); let raft_config = openraft::Config { heartbeat_interval: 500, diff --git a/crates/aingle_raft/src/network.rs b/crates/aingle_raft/src/network.rs index 2ad84f8..0cce196 100644 --- a/crates/aingle_raft/src/network.rs +++ b/crates/aingle_raft/src/network.rs @@ -145,18 +145,18 @@ pub trait RaftRpcSender: Send + Sync + 'static { // ============================================================================ /// Factory that creates per-target network connections for Raft RPC. +/// +/// The factory needs no [`NodeResolver`]: openraft hands [`Self::new_client`] the +/// target's [`CortexNode`] (with its address) directly from cluster membership, so +/// there is no separate address lookup to perform here. pub struct CortexNetworkFactory { - resolver: Arc, rpc_sender: Arc, } impl CortexNetworkFactory { /// Create a new network factory. - pub fn new(resolver: Arc, rpc_sender: Arc) -> Self { - Self { - resolver, - rpc_sender, - } + pub fn new(rpc_sender: Arc) -> Self { + Self { rpc_sender } } }