mirror of
https://github.com/pezkuwichain/pezkuwi-telemetry.git
synced 2026-06-12 10:01:18 +00:00
Tweak logs and attempt to avoid races around removing nodes (#504)
* Tweak logs and attempt to avoid races around removing nodes * wrapping_add in assign_id
This commit is contained in:
@@ -248,7 +248,7 @@ impl InnerLoop {
|
||||
}
|
||||
|
||||
if let Err(e) = metered_tx.send(msg) {
|
||||
log::error!("Cannot send message into aggregator: {}", e);
|
||||
log::error!("Cannot send message into aggregator: {e}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -386,10 +386,11 @@ impl InnerLoop {
|
||||
let node_id = match self.node_ids.remove_by_right(&(shard_conn_id, local_id)) {
|
||||
Some((node_id, _)) => node_id,
|
||||
None => {
|
||||
log::error!(
|
||||
"Cannot find ID for node with shard/connectionId of {:?}/{:?}",
|
||||
shard_conn_id,
|
||||
local_id
|
||||
// It's possible that some race between removing and disconnecting shards might lead to
|
||||
// more than one remove message for the same node. This isn't really a problem, but we
|
||||
// hope it won't happen so make a note if it does:
|
||||
log::debug!(
|
||||
"Remove: Cannot find ID for node with shard/connectionId of {shard_conn_id:?}/{local_id:?}"
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -401,9 +402,7 @@ impl InnerLoop {
|
||||
Some(id) => *id,
|
||||
None => {
|
||||
log::error!(
|
||||
"Cannot find ID for node with shard/connectionId of {:?}/{:?}",
|
||||
shard_conn_id,
|
||||
local_id
|
||||
"Update: Cannot find ID for node with shard/connectionId of {shard_conn_id:?}/{local_id:?}"
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -606,7 +605,7 @@ impl InnerLoop {
|
||||
let removed_details = match self.node_state.remove_node(node_id) {
|
||||
Some(remove_details) => remove_details,
|
||||
None => {
|
||||
log::error!("Could not find node {:?}", node_id);
|
||||
log::error!("Could not find node {node_id:?}");
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -251,10 +251,7 @@ where
|
||||
break;
|
||||
}
|
||||
if let Err(e) = msg_info {
|
||||
log::error!(
|
||||
"Shutting down websocket connection: Failed to receive data: {}",
|
||||
e
|
||||
);
|
||||
log::error!("Shutting down websocket connection: Failed to receive data: {e}");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -262,10 +259,7 @@ where
|
||||
match bincode::options().deserialize(&bytes) {
|
||||
Ok(msg) => msg,
|
||||
Err(e) => {
|
||||
log::error!(
|
||||
"Failed to deserialize message from shard; booting it: {}",
|
||||
e
|
||||
);
|
||||
log::error!("Failed to deserialize message from shard; booting it: {e}");
|
||||
break;
|
||||
}
|
||||
};
|
||||
@@ -292,7 +286,7 @@ where
|
||||
};
|
||||
|
||||
if let Err(e) = tx_to_aggregator.send(aggregator_msg).await {
|
||||
log::error!("Failed to send message to aggregator; closing shard: {}", e);
|
||||
log::error!("Failed to send message to aggregator; closing shard: {e}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -325,13 +319,10 @@ where
|
||||
.expect("message to shard should serialize");
|
||||
|
||||
if let Err(e) = ws_send.send_binary(bytes).await {
|
||||
log::error!("Failed to send message to aggregator; closing shard: {}", e)
|
||||
log::error!("Failed to send message to aggregator; closing shard: {e}")
|
||||
}
|
||||
if let Err(e) = ws_send.flush().await {
|
||||
log::error!(
|
||||
"Failed to flush message to aggregator; closing shard: {}",
|
||||
e
|
||||
)
|
||||
log::error!("Failed to flush message to aggregator; closing shard: {e}")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -374,7 +365,7 @@ where
|
||||
channel: tx_to_feed_conn,
|
||||
};
|
||||
if let Err(e) = tx_to_aggregator.send(init_msg).await {
|
||||
log::error!("Error sending message to aggregator: {}", e);
|
||||
log::error!("Error sending message to aggregator: {e}");
|
||||
return (tx_to_aggregator, ws_send);
|
||||
}
|
||||
|
||||
@@ -399,10 +390,7 @@ where
|
||||
break;
|
||||
}
|
||||
if let Err(e) = msg_info {
|
||||
log::error!(
|
||||
"Shutting down websocket connection: Failed to receive data: {}",
|
||||
e
|
||||
);
|
||||
log::error!("Shutting down websocket connection: Failed to receive data: {e}");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -416,16 +404,12 @@ where
|
||||
let cmd = match FromFeedWebsocket::from_str(&text) {
|
||||
Ok(cmd) => cmd,
|
||||
Err(e) => {
|
||||
log::warn!(
|
||||
"Ignoring invalid command '{}' from the frontend: {}",
|
||||
text,
|
||||
e
|
||||
);
|
||||
log::warn!("Ignoring invalid command '{text}' from the frontend: {e}");
|
||||
continue;
|
||||
}
|
||||
};
|
||||
if let Err(e) = tx_to_aggregator.send(cmd).await {
|
||||
log::error!("Failed to send message to aggregator; closing feed: {}", e);
|
||||
log::error!("Failed to send message to aggregator; closing feed: {e}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user