From 386bf375395ace0acf140ae6a8ea42df2457daa4 Mon Sep 17 00:00:00 2001 From: Josh Wilson Date: Wed, 21 Dec 2022 09:55:08 +0100 Subject: [PATCH] fix: remove async call and LogCtx The readlock in here could have been causing a deadlock --- sn_interface/src/network_knowledge/mod.rs | 2 +- sn_node/src/node/logging/log_ctx.rs | 30 ----------------------- sn_node/src/node/logging/mod.rs | 12 ++++----- sn_node/src/node/node_starter.rs | 6 ++--- 4 files changed, 9 insertions(+), 41 deletions(-) delete mode 100644 sn_node/src/node/logging/log_ctx.rs diff --git a/sn_interface/src/network_knowledge/mod.rs b/sn_interface/src/network_knowledge/mod.rs index 75a3b1fa81..ce22bf3dd2 100644 --- a/sn_interface/src/network_knowledge/mod.rs +++ b/sn_interface/src/network_knowledge/mod.rs @@ -389,7 +389,7 @@ impl NetworkKnowledge { continue; } trace!( - "Updating section members. Name: {:?}, new state: {:?}", + "Attempting to update section members. Name: {:?}, new state: {:?}", node_state.name(), node_state.state() ); diff --git a/sn_node/src/node/logging/log_ctx.rs b/sn_node/src/node/logging/log_ctx.rs deleted file mode 100644 index 600bedc1db..0000000000 --- a/sn_node/src/node/logging/log_ctx.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 MaidSafe.net limited. -// -// This SAFE Network Software is licensed to you under The General Public License (GPL), version 3. -// Unless required by applicable law or agreed to in writing, the SAFE Network Software distributed -// under the GPL Licence is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. Please review the Licences for the specific language governing -// permissions and limitations relating to use of the SAFE Network Software. - -use crate::node::MyNode; - -use std::sync::Arc; -use tokio::sync::RwLock; -use xor_name::Prefix; - -pub(crate) struct LogCtx { - node: Arc>, -} - -impl LogCtx { - pub(crate) fn new(node: Arc>) -> Self { - Self { node } - } - - pub(crate) async fn prefix(&self) -> Prefix { - debug!("[NODE READ]: logging lock attempt"); - let p = self.node.read().await.network_knowledge().prefix(); - debug!("[NODE READ]: logging lock got"); - p - } -} diff --git a/sn_node/src/node/logging/mod.rs b/sn_node/src/node/logging/mod.rs index 9640210c57..b3e892c8c1 100644 --- a/sn_node/src/node/logging/mod.rs +++ b/sn_node/src/node/logging/mod.rs @@ -6,19 +6,17 @@ // KIND, either express or implied. Please review the Licences for the specific language governing // permissions and limitations relating to use of the SAFE Network Software. -pub(super) mod log_ctx; - -use self::log_ctx::LogCtx; use sysinfo::{System, SystemExt}; use tracing::trace; +use xor_name::Prefix; -pub(super) async fn log_system_details(ctx: LogCtx) { +pub(super) fn log_system_details(prefix: Prefix) { let mut system = System::new_all(); - initial_log(&mut system, &ctx).await; + initial_log(&mut system, prefix); } -async fn initial_log(system: &mut System, ctx: &LogCtx) { - let prefix: &str = &format!("{}", ctx.prefix().await.name()); +fn initial_log(system: &mut System, prefix: Prefix) { + let prefix: &str = &format!("{}", prefix.name()); let os_name: &str = &fmt(system.name()); let kernel_version: &str = &fmt(system.kernel_version()); let os_version: &str = &fmt(system.os_version()); diff --git a/sn_node/src/node/node_starter.rs b/sn_node/src/node/node_starter.rs index ed690fde64..319e84d2fa 100644 --- a/sn_node/src/node/node_starter.rs +++ b/sn_node/src/node/node_starter.rs @@ -13,7 +13,7 @@ use crate::node::{ cmds::Cmd, dispatcher::Dispatcher, dysfunction::DysCmds, CmdCtrl, FlowCtrl, RejoinNetwork, }, join_network, - logging::{log_ctx::LogCtx, log_system_details}, + logging::log_system_details, Config, Error, MyNode, Result, STANDARD_CHANNEL_SIZE, }; use crate::UsedSpace; @@ -121,9 +121,9 @@ async fn new_node( "Node PID: {:?}, prefix: {:?}, name: {:?}, age: {}, connection info: {}", our_pid, node_prefix, node_name, node_age, our_conn_info_json, ); - } - log_system_details(LogCtx::new(node.clone())).await; + log_system_details(node_prefix); + } Ok((node, cmd_channel, rejoin_network_rx)) }