mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 05:51:02 +00:00
observability: tracing gum, automatically cross ref traceID (#5079)
* add some gum * bump expander * gum * fix all remaining issues * last fixup * Update node/gum/proc-macro/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * change * netowrk * fixins * chore * allow optional fmt str + args, prep for expr as kv field * tracing -> gum rename fallout * restrict further * allow multiple levels of field accesses * another round of docs and a slip of the pen * update ADR * fixup lock fiel * use target: instead of target= * minors * fix * chore * Update node/gum/README.md Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
fa359fd1f7
commit
d631f1dea8
@@ -12,7 +12,7 @@ polkadot-node-subsystem-util = { path = "../../subsystem-util" }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
|
||||
futures = "0.3.21"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
|
||||
[dev-dependencies]
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["std"] }
|
||||
|
||||
@@ -206,11 +206,11 @@ impl State {
|
||||
match event {
|
||||
NetworkBridgeEvent::PeerConnected(peer_id, role, _) => {
|
||||
// insert a blank view if none already present
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, ?role, "Peer connected");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, ?role, "Peer connected");
|
||||
self.peer_views.entry(peer_id).or_default();
|
||||
},
|
||||
NetworkBridgeEvent::PeerDisconnected(peer_id) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, "Peer disconnected");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, "Peer disconnected");
|
||||
self.peer_views.remove(&peer_id);
|
||||
self.blocks.iter_mut().for_each(|(_hash, entry)| {
|
||||
entry.known_by.remove(&peer_id);
|
||||
@@ -230,7 +230,7 @@ impl State {
|
||||
self.handle_peer_view_change(ctx, metrics, peer_id, view).await;
|
||||
},
|
||||
NetworkBridgeEvent::OurViewChange(view) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?view, "Own view change");
|
||||
gum::trace!(target: LOG_TARGET, ?view, "Own view change");
|
||||
for head in view.iter() {
|
||||
if !self.blocks.contains_key(head) {
|
||||
self.pending_known.entry(*head).or_default();
|
||||
@@ -240,7 +240,7 @@ impl State {
|
||||
self.pending_known.retain(|h, _| {
|
||||
let live = view.contains(h);
|
||||
if !live {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
block_hash = ?h,
|
||||
"Cleaning up stale pending messages",
|
||||
@@ -287,7 +287,7 @@ impl State {
|
||||
}
|
||||
}
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Got new blocks {:?}",
|
||||
metas.iter().map(|m| (m.hash, m.number)).collect::<Vec<_>>(),
|
||||
@@ -318,7 +318,7 @@ impl State {
|
||||
let to_import = pending_now_known
|
||||
.into_iter()
|
||||
.inspect(|h| {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
block_hash = ?h,
|
||||
"Extracting pending messages for new block"
|
||||
@@ -329,7 +329,7 @@ impl State {
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
if !to_import.is_empty() {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
num = to_import.len(),
|
||||
"Processing pending assignment/approvals",
|
||||
@@ -374,7 +374,7 @@ impl State {
|
||||
) {
|
||||
match msg {
|
||||
protocol_v1::ApprovalDistributionMessage::Assignments(assignments) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = %peer_id,
|
||||
num = assignments.len(),
|
||||
@@ -388,7 +388,7 @@ impl State {
|
||||
assignment.validator,
|
||||
);
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
%peer_id,
|
||||
?fingerprint,
|
||||
@@ -414,7 +414,7 @@ impl State {
|
||||
}
|
||||
},
|
||||
protocol_v1::ApprovalDistributionMessage::Approvals(approvals) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = %peer_id,
|
||||
num = approvals.len(),
|
||||
@@ -428,7 +428,7 @@ impl State {
|
||||
approval_vote.validator,
|
||||
);
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
%peer_id,
|
||||
?fingerprint,
|
||||
@@ -460,7 +460,7 @@ impl State {
|
||||
peer_id: PeerId,
|
||||
view: View,
|
||||
) {
|
||||
tracing::trace!(target: LOG_TARGET, ?view, "Peer view change");
|
||||
gum::trace!(target: LOG_TARGET, ?view, "Peer view change");
|
||||
let finalized_number = view.finalized_number;
|
||||
let old_view = self.peer_views.insert(peer_id.clone(), view.clone());
|
||||
let old_finalized_number = old_view.map(|v| v.finalized_number).unwrap_or(0);
|
||||
@@ -525,7 +525,7 @@ impl State {
|
||||
Some(entry) => entry,
|
||||
None => {
|
||||
if let Some(peer_id) = source.peer_id() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?block_hash,
|
||||
@@ -549,7 +549,7 @@ impl State {
|
||||
let peer_knowledge = peer_knowledge.get_mut();
|
||||
if peer_knowledge.contains(&fingerprint) {
|
||||
if peer_knowledge.received.contains(&fingerprint) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?fingerprint,
|
||||
@@ -562,7 +562,7 @@ impl State {
|
||||
}
|
||||
},
|
||||
hash_map::Entry::Vacant(_) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?fingerprint,
|
||||
@@ -576,7 +576,7 @@ impl State {
|
||||
if entry.knowledge.known_messages.contains(&fingerprint) {
|
||||
modify_reputation(ctx, peer_id.clone(), BENEFIT_VALID_MESSAGE).await;
|
||||
if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, ?fingerprint, "Known assignment");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, ?fingerprint, "Known assignment");
|
||||
peer_knowledge.received.insert(fingerprint.clone());
|
||||
}
|
||||
return
|
||||
@@ -595,19 +595,13 @@ impl State {
|
||||
let result = match rx.await {
|
||||
Ok(result) => result,
|
||||
Err(_) => {
|
||||
tracing::debug!(target: LOG_TARGET, "The approval voting subsystem is down");
|
||||
gum::debug!(target: LOG_TARGET, "The approval voting subsystem is down");
|
||||
return
|
||||
},
|
||||
};
|
||||
drop(timer);
|
||||
|
||||
tracing::trace!(
|
||||
target: LOG_TARGET,
|
||||
?source,
|
||||
?fingerprint,
|
||||
?result,
|
||||
"Checked assignment",
|
||||
);
|
||||
gum::trace!(target: LOG_TARGET, ?source, ?fingerprint, ?result, "Checked assignment",);
|
||||
match result {
|
||||
AssignmentCheckResult::Accepted => {
|
||||
modify_reputation(ctx, peer_id.clone(), BENEFIT_VALID_MESSAGE_FIRST).await;
|
||||
@@ -623,7 +617,7 @@ impl State {
|
||||
if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) {
|
||||
peer_knowledge.received.insert(fingerprint);
|
||||
}
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
"Got an `AcceptedDuplicate` assignment",
|
||||
@@ -631,7 +625,7 @@ impl State {
|
||||
return
|
||||
},
|
||||
AssignmentCheckResult::TooFarInFuture => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
"Got an assignment too far in the future",
|
||||
@@ -640,7 +634,7 @@ impl State {
|
||||
return
|
||||
},
|
||||
AssignmentCheckResult::Bad(error) => {
|
||||
tracing::info!(
|
||||
gum::info!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
%error,
|
||||
@@ -653,18 +647,14 @@ impl State {
|
||||
} else {
|
||||
if !entry.knowledge.known_messages.insert(fingerprint.clone()) {
|
||||
// if we already imported an assignment, there is no need to distribute it again
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
?fingerprint,
|
||||
"Importing locally an already known assignment",
|
||||
);
|
||||
return
|
||||
} else {
|
||||
tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
?fingerprint,
|
||||
"Importing locally a new assignment",
|
||||
);
|
||||
gum::debug!(target: LOG_TARGET, ?fingerprint, "Importing locally a new assignment",);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -682,7 +672,7 @@ impl State {
|
||||
});
|
||||
},
|
||||
None => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?block_hash,
|
||||
?claimed_candidate_index,
|
||||
@@ -716,7 +706,7 @@ impl State {
|
||||
}
|
||||
|
||||
if !peers.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?block_hash,
|
||||
?claimed_candidate_index,
|
||||
@@ -769,7 +759,7 @@ impl State {
|
||||
);
|
||||
|
||||
if !entry.knowledge.known_messages.contains(&assignment_fingerprint) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?fingerprint,
|
||||
@@ -785,7 +775,7 @@ impl State {
|
||||
let peer_knowledge = knowledge.get_mut();
|
||||
if peer_knowledge.contains(&fingerprint) {
|
||||
if peer_knowledge.received.contains(&fingerprint) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?fingerprint,
|
||||
@@ -799,7 +789,7 @@ impl State {
|
||||
}
|
||||
},
|
||||
hash_map::Entry::Vacant(_) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?fingerprint,
|
||||
@@ -811,7 +801,7 @@ impl State {
|
||||
|
||||
// if the approval is known to be valid, reward the peer
|
||||
if entry.knowledge.contains(&fingerprint) {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, ?fingerprint, "Known approval");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, ?fingerprint, "Known approval");
|
||||
modify_reputation(ctx, peer_id.clone(), BENEFIT_VALID_MESSAGE).await;
|
||||
if let Some(peer_knowledge) = entry.known_by.get_mut(&peer_id) {
|
||||
peer_knowledge.received.insert(fingerprint.clone());
|
||||
@@ -828,19 +818,13 @@ impl State {
|
||||
let result = match rx.await {
|
||||
Ok(result) => result,
|
||||
Err(_) => {
|
||||
tracing::debug!(target: LOG_TARGET, "The approval voting subsystem is down");
|
||||
gum::debug!(target: LOG_TARGET, "The approval voting subsystem is down");
|
||||
return
|
||||
},
|
||||
};
|
||||
drop(timer);
|
||||
|
||||
tracing::trace!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
?fingerprint,
|
||||
?result,
|
||||
"Checked approval",
|
||||
);
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, ?fingerprint, ?result, "Checked approval",);
|
||||
match result {
|
||||
ApprovalCheckResult::Accepted => {
|
||||
modify_reputation(ctx, peer_id.clone(), BENEFIT_VALID_MESSAGE_FIRST).await;
|
||||
@@ -852,7 +836,7 @@ impl State {
|
||||
},
|
||||
ApprovalCheckResult::Bad(error) => {
|
||||
modify_reputation(ctx, peer_id, COST_INVALID_MESSAGE).await;
|
||||
tracing::info!(
|
||||
gum::info!(
|
||||
target: LOG_TARGET,
|
||||
?peer_id,
|
||||
%error,
|
||||
@@ -864,18 +848,14 @@ impl State {
|
||||
} else {
|
||||
if !entry.knowledge.insert(fingerprint.clone()) {
|
||||
// if we already imported an approval, there is no need to distribute it again
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
?fingerprint,
|
||||
"Importing locally an already known approval",
|
||||
);
|
||||
return
|
||||
} else {
|
||||
tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
?fingerprint,
|
||||
"Importing locally a new approval",
|
||||
);
|
||||
gum::debug!(target: LOG_TARGET, ?fingerprint, "Importing locally a new approval",);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -902,7 +882,7 @@ impl State {
|
||||
},
|
||||
None => {
|
||||
// this would indicate a bug in approval-voting
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?block_hash,
|
||||
?candidate_index,
|
||||
@@ -913,7 +893,7 @@ impl State {
|
||||
}
|
||||
},
|
||||
None => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?block_hash,
|
||||
?candidate_index,
|
||||
@@ -948,7 +928,7 @@ impl State {
|
||||
|
||||
let approvals = vec![vote];
|
||||
if !peers.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?block_hash,
|
||||
?candidate_index,
|
||||
@@ -1004,7 +984,7 @@ impl State {
|
||||
// This safeguard is needed primarily in case of long finality stalls
|
||||
// so we don't waste time in a loop for every peer.
|
||||
if missing.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?block,
|
||||
?peer_id,
|
||||
@@ -1036,7 +1016,7 @@ impl State {
|
||||
util::MIN_GOSSIP_PEERS,
|
||||
);
|
||||
if !lucky {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, "Unlucky peer");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, "Unlucky peer");
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1062,7 +1042,7 @@ impl State {
|
||||
None => continue, // should be unreachable
|
||||
};
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
"Sending all assignments and approvals in block {} to peer {}",
|
||||
block,
|
||||
@@ -1083,7 +1063,7 @@ impl State {
|
||||
match approval_state {
|
||||
ApprovalState::Assigned(cert) => {
|
||||
if !missing.contains(&assignment_fingerprint) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?block,
|
||||
?validator_index,
|
||||
@@ -1123,7 +1103,7 @@ impl State {
|
||||
candidate_index.clone(),
|
||||
));
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?block,
|
||||
?validator_index,
|
||||
@@ -1142,7 +1122,7 @@ impl State {
|
||||
signature: signature.clone(),
|
||||
});
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?block,
|
||||
?validator_index,
|
||||
@@ -1157,7 +1137,7 @@ impl State {
|
||||
}
|
||||
|
||||
if !assignments.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
num = assignments.len(),
|
||||
?num_blocks,
|
||||
@@ -1175,7 +1155,7 @@ impl State {
|
||||
}
|
||||
|
||||
if !approvals.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
num = approvals.len(),
|
||||
?num_blocks,
|
||||
@@ -1201,7 +1181,7 @@ async fn modify_reputation(
|
||||
peer_id: PeerId,
|
||||
rep: Rep,
|
||||
) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
reputation = ?rep,
|
||||
?peer_id,
|
||||
@@ -1236,7 +1216,7 @@ impl ApprovalDistribution {
|
||||
let message = match ctx.recv().await {
|
||||
Ok(message) => message,
|
||||
Err(e) => {
|
||||
tracing::debug!(target: LOG_TARGET, err = ?e, "Failed to receive a message from Overseer, exiting");
|
||||
gum::debug!(target: LOG_TARGET, err = ?e, "Failed to receive a message from Overseer, exiting");
|
||||
return
|
||||
},
|
||||
};
|
||||
@@ -1249,13 +1229,13 @@ impl ApprovalDistribution {
|
||||
FromOverseer::Communication {
|
||||
msg: ApprovalDistributionMessage::NewBlocks(metas),
|
||||
} => {
|
||||
tracing::debug!(target: LOG_TARGET, "Processing NewBlocks");
|
||||
gum::debug!(target: LOG_TARGET, "Processing NewBlocks");
|
||||
state.handle_new_blocks(&mut ctx, &self.metrics, metas).await;
|
||||
},
|
||||
FromOverseer::Communication {
|
||||
msg: ApprovalDistributionMessage::DistributeAssignment(cert, candidate_index),
|
||||
} => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Distributing our assignment on candidate (block={}, index={})",
|
||||
cert.block_hash,
|
||||
@@ -1275,7 +1255,7 @@ impl ApprovalDistribution {
|
||||
FromOverseer::Communication {
|
||||
msg: ApprovalDistributionMessage::DistributeApproval(vote),
|
||||
} => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Distributing our approval vote on candidate (block={}, index={})",
|
||||
vote.block_hash,
|
||||
@@ -1294,11 +1274,11 @@ impl ApprovalDistribution {
|
||||
FromOverseer::Signal(OverseerSignal::ActiveLeaves(ActiveLeavesUpdate {
|
||||
..
|
||||
})) => {
|
||||
tracing::trace!(target: LOG_TARGET, "active leaves signal (ignored)");
|
||||
gum::trace!(target: LOG_TARGET, "active leaves signal (ignored)");
|
||||
// handled by NewBlocks
|
||||
},
|
||||
FromOverseer::Signal(OverseerSignal::BlockFinalized(_hash, number)) => {
|
||||
tracing::trace!(target: LOG_TARGET, number = %number, "finalized signal");
|
||||
gum::trace!(target: LOG_TARGET, number = %number, "finalized signal");
|
||||
state.handle_block_finalized(number);
|
||||
},
|
||||
FromOverseer::Signal(OverseerSignal::Conclude) => return,
|
||||
|
||||
@@ -72,7 +72,7 @@ fn test_harness<T: Future<Output = VirtualOverseer>>(
|
||||
const TIMEOUT: Duration = Duration::from_millis(100);
|
||||
|
||||
async fn overseer_send(overseer: &mut VirtualOverseer, msg: ApprovalDistributionMessage) {
|
||||
tracing::trace!(msg = ?msg, "Sending message");
|
||||
gum::trace!(msg = ?msg, "Sending message");
|
||||
overseer
|
||||
.send(FromOverseer::Communication { msg })
|
||||
.timeout(TIMEOUT)
|
||||
@@ -81,7 +81,7 @@ async fn overseer_send(overseer: &mut VirtualOverseer, msg: ApprovalDistribution
|
||||
}
|
||||
|
||||
async fn overseer_signal_block_finalized(overseer: &mut VirtualOverseer, number: BlockNumber) {
|
||||
tracing::trace!(?number, "Sending a finalized signal");
|
||||
gum::trace!(?number, "Sending a finalized signal");
|
||||
// we don't care about the block hash
|
||||
overseer
|
||||
.send(FromOverseer::Signal(OverseerSignal::BlockFinalized(Hash::zero(), number)))
|
||||
@@ -91,10 +91,10 @@ async fn overseer_signal_block_finalized(overseer: &mut VirtualOverseer, number:
|
||||
}
|
||||
|
||||
async fn overseer_recv(overseer: &mut VirtualOverseer) -> AllMessages {
|
||||
tracing::trace!("Waiting for a message");
|
||||
gum::trace!("Waiting for a message");
|
||||
let msg = overseer.recv().timeout(TIMEOUT).await.expect("msg recv timeout");
|
||||
|
||||
tracing::trace!(msg = ?msg, "Received message");
|
||||
gum::trace!(msg = ?msg, "Received message");
|
||||
|
||||
msg
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
futures = "0.3.21"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
parity-scale-codec = { version = "3.1.0", features = ["std"] }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
polkadot-erasure-coding = { path = "../../../erasure-coding" }
|
||||
|
||||
@@ -100,12 +100,11 @@ pub fn log_error(result: Result<()>, ctx: &'static str) -> std::result::Result<(
|
||||
JfyiError::InvalidValidatorIndex |
|
||||
JfyiError::NoSuchCachedSession { .. } |
|
||||
JfyiError::QueryAvailableDataResponseChannel(_) |
|
||||
JfyiError::QueryChunkResponseChannel(_) =>
|
||||
tracing::warn!(target: LOG_TARGET, error = %jfyi, ctx),
|
||||
JfyiError::QueryChunkResponseChannel(_) => gum::warn!(target: LOG_TARGET, error = %jfyi, ctx),
|
||||
JfyiError::FetchPoV(_) |
|
||||
JfyiError::SendResponse |
|
||||
JfyiError::NoSuchPoV |
|
||||
JfyiError::Runtime(_) => tracing::debug!(target: LOG_TARGET, error = ?jfyi, ctx),
|
||||
JfyiError::Runtime(_) => gum::debug!(target: LOG_TARGET, error = ?jfyi, ctx),
|
||||
}
|
||||
Ok(())
|
||||
},
|
||||
|
||||
@@ -91,7 +91,7 @@ async fn fetch_pov_job(
|
||||
metrics: Metrics,
|
||||
) {
|
||||
if let Err(err) = do_fetch_pov(pov_hash, pending_response, span, tx, metrics).await {
|
||||
tracing::warn!(target: LOG_TARGET, ?err, ?pov_hash, ?authority_id, "fetch_pov_job");
|
||||
gum::warn!(target: LOG_TARGET, ?err, ?pov_hash, ?authority_id, "fetch_pov_job");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ mod tests {
|
||||
.unwrap();
|
||||
break
|
||||
},
|
||||
msg => tracing::debug!(target: LOG_TARGET, msg = ?msg, "Received msg"),
|
||||
msg => gum::debug!(target: LOG_TARGET, msg = ?msg, "Received msg"),
|
||||
}
|
||||
}
|
||||
if pov.hash() == pov_hash {
|
||||
|
||||
@@ -271,7 +271,7 @@ impl RunningTask {
|
||||
let resp = match self.do_request(&validator).await {
|
||||
Ok(resp) => resp,
|
||||
Err(TaskError::ShuttingDown) => {
|
||||
tracing::info!(
|
||||
gum::info!(
|
||||
target: LOG_TARGET,
|
||||
"Node seems to be shutting down, canceling fetch task"
|
||||
);
|
||||
@@ -286,7 +286,7 @@ impl RunningTask {
|
||||
let chunk = match resp {
|
||||
ChunkFetchingResponse::Chunk(resp) => resp.recombine_into_chunk(&self.request),
|
||||
ChunkFetchingResponse::NoSuchChunk => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
validator = ?validator,
|
||||
"Validator did not have our chunk"
|
||||
@@ -337,7 +337,7 @@ impl RunningTask {
|
||||
match response_recv.await {
|
||||
Ok(resp) => Ok(resp),
|
||||
Err(RequestError::InvalidResponse(err)) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
origin= ?validator,
|
||||
err= ?err,
|
||||
@@ -346,7 +346,7 @@ impl RunningTask {
|
||||
Err(TaskError::PeerError)
|
||||
},
|
||||
Err(RequestError::NetworkError(err)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
origin= ?validator,
|
||||
err= ?err,
|
||||
@@ -355,7 +355,7 @@ impl RunningTask {
|
||||
Err(TaskError::PeerError)
|
||||
},
|
||||
Err(RequestError::Canceled(oneshot::Canceled)) => {
|
||||
tracing::debug!(target: LOG_TARGET,
|
||||
gum::debug!(target: LOG_TARGET,
|
||||
origin= ?validator,
|
||||
"Erasure chunk request got canceled");
|
||||
Err(TaskError::PeerError)
|
||||
@@ -368,7 +368,7 @@ impl RunningTask {
|
||||
match branch_hash(&self.erasure_root, chunk.proof(), chunk.index.0 as usize) {
|
||||
Ok(hash) => hash,
|
||||
Err(e) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?self.request.candidate_hash,
|
||||
origin = ?validator,
|
||||
@@ -380,7 +380,7 @@ impl RunningTask {
|
||||
};
|
||||
let erasure_chunk_hash = BlakeTwo256::hash(&chunk.chunk);
|
||||
if anticipated_hash != erasure_chunk_hash {
|
||||
tracing::warn!(target: LOG_TARGET, origin = ?validator, "Received chunk does not match merkle tree");
|
||||
gum::warn!(target: LOG_TARGET, origin = ?validator, "Received chunk does not match merkle tree");
|
||||
return false
|
||||
}
|
||||
true
|
||||
@@ -400,11 +400,11 @@ impl RunningTask {
|
||||
)))
|
||||
.await;
|
||||
if let Err(err) = r {
|
||||
tracing::error!(target: LOG_TARGET, err= ?err, "Storing erasure chunk failed, system shutting down?");
|
||||
gum::error!(target: LOG_TARGET, err= ?err, "Storing erasure chunk failed, system shutting down?");
|
||||
}
|
||||
|
||||
if let Err(oneshot::Canceled) = rx.await {
|
||||
tracing::error!(target: LOG_TARGET, "Storing erasure chunk failed");
|
||||
gum::error!(target: LOG_TARGET, "Storing erasure chunk failed");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,7 +420,7 @@ impl RunningTask {
|
||||
})
|
||||
};
|
||||
if let Err(err) = self.sender.send(FromFetchTask::Concluded(payload)).await {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err= ?err,
|
||||
"Sending concluded message for task failed"
|
||||
@@ -431,7 +431,7 @@ impl RunningTask {
|
||||
async fn conclude_fail(&mut self) {
|
||||
if let Err(err) = self.sender.send(FromFetchTask::Failed(self.request.candidate_hash)).await
|
||||
{
|
||||
tracing::warn!(target: LOG_TARGET, ?err, "Sending `Failed` message for task failed");
|
||||
gum::warn!(target: LOG_TARGET, ?err, "Sending `Failed` message for task failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ impl TestRun {
|
||||
return true
|
||||
},
|
||||
_ => {
|
||||
tracing::debug!(target: LOG_TARGET, "Unexpected message");
|
||||
gum::debug!(target: LOG_TARGET, "Unexpected message");
|
||||
return false
|
||||
},
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ impl Requester {
|
||||
where
|
||||
Context: SubsystemContext,
|
||||
{
|
||||
tracing::trace!(target: LOG_TARGET, ?update, "Update fetching heads");
|
||||
gum::trace!(target: LOG_TARGET, ?update, "Update fetching heads");
|
||||
let ActiveLeavesUpdate { activated, deactivated } = update;
|
||||
// Stale leaves happen after a reversion - we don't want to re-run availability there.
|
||||
if let Some(leaf) = activated.filter(|leaf| leaf.status == LeafStatus::Fresh) {
|
||||
@@ -140,7 +140,7 @@ impl Requester {
|
||||
// Also spawn or bump tasks for candidates in ancestry in the same session.
|
||||
for hash in std::iter::once(leaf).chain(ancestors_in_session) {
|
||||
let cores = get_occupied_cores(ctx, hash).await?;
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
occupied_cores = ?cores,
|
||||
"Query occupied core"
|
||||
@@ -212,7 +212,7 @@ impl Requester {
|
||||
)
|
||||
.await
|
||||
.map_err(|err| {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
error = ?err,
|
||||
"Failed to spawn a fetch task"
|
||||
|
||||
@@ -107,16 +107,16 @@ impl SessionCache {
|
||||
F: FnOnce(&SessionInfo) -> R,
|
||||
{
|
||||
if let Some(o_info) = self.session_info_cache.get(&session_index) {
|
||||
tracing::trace!(target: LOG_TARGET, session_index, "Got session from lru");
|
||||
gum::trace!(target: LOG_TARGET, session_index, "Got session from lru");
|
||||
return Ok(Some(with_info(o_info)))
|
||||
}
|
||||
|
||||
if let Some(info) =
|
||||
self.query_info_from_runtime(ctx, runtime, parent, session_index).await?
|
||||
{
|
||||
tracing::trace!(target: LOG_TARGET, session_index, "Calling `with_info`");
|
||||
gum::trace!(target: LOG_TARGET, session_index, "Calling `with_info`");
|
||||
let r = with_info(&info);
|
||||
tracing::trace!(target: LOG_TARGET, session_index, "Storing session info in lru!");
|
||||
gum::trace!(target: LOG_TARGET, session_index, "Storing session info in lru!");
|
||||
self.session_info_cache.put(session_index, info);
|
||||
Ok(Some(r))
|
||||
} else {
|
||||
@@ -130,7 +130,7 @@ impl SessionCache {
|
||||
/// subsystem on this.
|
||||
pub fn report_bad_log(&mut self, report: BadValidators) {
|
||||
if let Err(err) = self.report_bad(report) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?err,
|
||||
"Reporting bad validators failed with error"
|
||||
|
||||
@@ -51,7 +51,7 @@ pub async fn run_pov_receiver<Sender>(
|
||||
answer_pov_request_log(&mut sender, msg, &metrics).await;
|
||||
},
|
||||
Err(fatal) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
error = ?fatal,
|
||||
"Shutting down POV receiver."
|
||||
@@ -59,7 +59,7 @@ pub async fn run_pov_receiver<Sender>(
|
||||
return
|
||||
},
|
||||
Ok(Err(jfyi)) => {
|
||||
tracing::debug!(target: LOG_TARGET, error = ?jfyi, "Error decoding incoming PoV request.");
|
||||
gum::debug!(target: LOG_TARGET, error = ?jfyi, "Error decoding incoming PoV request.");
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -79,7 +79,7 @@ pub async fn run_chunk_receiver<Sender>(
|
||||
answer_chunk_request_log(&mut sender, msg, &metrics).await;
|
||||
},
|
||||
Err(fatal) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
error = ?fatal,
|
||||
"Shutting down chunk receiver."
|
||||
@@ -87,7 +87,7 @@ pub async fn run_chunk_receiver<Sender>(
|
||||
return
|
||||
},
|
||||
Ok(Err(jfyi)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
error = ?jfyi,
|
||||
"Error decoding incoming chunk request."
|
||||
@@ -111,7 +111,7 @@ pub async fn answer_pov_request_log<Sender>(
|
||||
match res {
|
||||
Ok(result) => metrics.on_served_pov(if result { SUCCEEDED } else { NOT_FOUND }),
|
||||
Err(err) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err= ?err,
|
||||
"Serving PoV failed with error"
|
||||
@@ -136,7 +136,7 @@ where
|
||||
match res {
|
||||
Ok(result) => metrics.on_served_chunk(if result { SUCCEEDED } else { NOT_FOUND }),
|
||||
Err(err) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err= ?err,
|
||||
"Serving chunk failed with error"
|
||||
@@ -192,7 +192,7 @@ where
|
||||
|
||||
let result = chunk.is_some();
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?req.payload.candidate_hash,
|
||||
index = ?req.payload.index,
|
||||
@@ -227,7 +227,7 @@ where
|
||||
.await;
|
||||
|
||||
let result = rx.await.map_err(|e| {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?candidate_hash,
|
||||
|
||||
@@ -211,7 +211,7 @@ impl TestState {
|
||||
);
|
||||
|
||||
while remaining_stores > 0 {
|
||||
tracing::trace!(target: LOG_TARGET, remaining_stores, "Stores left to go");
|
||||
gum::trace!(target: LOG_TARGET, remaining_stores, "Stores left to go");
|
||||
let msg = overseer_recv(&mut rx).await;
|
||||
match msg {
|
||||
AllMessages::NetworkBridge(NetworkBridgeMessage::SendRequests(
|
||||
@@ -255,7 +255,7 @@ impl TestState {
|
||||
"Only valid chunks should ever get stored."
|
||||
);
|
||||
tx.send(Ok(())).expect("Receiver is expected to be alive");
|
||||
tracing::trace!(target: LOG_TARGET, "'Stored' fetched chunk.");
|
||||
gum::trace!(target: LOG_TARGET, "'Stored' fetched chunk.");
|
||||
remaining_stores -= 1;
|
||||
},
|
||||
AllMessages::RuntimeApi(RuntimeApiMessage::Request(hash, req)) => {
|
||||
@@ -269,7 +269,7 @@ impl TestState {
|
||||
.expect("Receiver should be alive.");
|
||||
},
|
||||
RuntimeApiRequest::AvailabilityCores(tx) => {
|
||||
tracing::trace!(target: LOG_TARGET, cores= ?self.cores[&hash], hash = ?hash, "Sending out cores for hash");
|
||||
gum::trace!(target: LOG_TARGET, cores= ?self.cores[&hash], hash = ?hash, "Sending out cores for hash");
|
||||
tx.send(Ok(self.cores[&hash].clone()))
|
||||
.expect("Receiver should still be alive");
|
||||
},
|
||||
@@ -299,12 +299,12 @@ async fn overseer_signal(
|
||||
msg: impl Into<OverseerSignal>,
|
||||
) {
|
||||
let msg = msg.into();
|
||||
tracing::trace!(target: LOG_TARGET, msg = ?msg, "sending message");
|
||||
gum::trace!(target: LOG_TARGET, msg = ?msg, "sending message");
|
||||
tx.send(FromOverseer::Signal(msg)).await.expect("Test subsystem no longer live");
|
||||
}
|
||||
|
||||
async fn overseer_recv(rx: &mut mpsc::UnboundedReceiver<AllMessages>) -> AllMessages {
|
||||
tracing::trace!(target: LOG_TARGET, "waiting for message ...");
|
||||
gum::trace!(target: LOG_TARGET, "waiting for message ...");
|
||||
rx.next().await.expect("Test subsystem no longer live")
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ lru = "0.7.3"
|
||||
rand = "0.8.5"
|
||||
fatality = "0.0.6"
|
||||
thiserror = "1.0.30"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
|
||||
polkadot-erasure-coding = { path = "../../../erasure-coding" }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
|
||||
@@ -180,7 +180,7 @@ impl RequestFromBackers {
|
||||
params: &RecoveryParams,
|
||||
sender: &mut impl SubsystemSender,
|
||||
) -> Result<AvailableData, RecoveryError> {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
erasure_root = ?params.erasure_root,
|
||||
@@ -216,7 +216,7 @@ impl RequestFromBackers {
|
||||
¶ms.erasure_root,
|
||||
&data,
|
||||
) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
"Received full data",
|
||||
@@ -224,7 +224,7 @@ impl RequestFromBackers {
|
||||
|
||||
return Ok(data)
|
||||
} else {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
?validator_index,
|
||||
@@ -235,7 +235,7 @@ impl RequestFromBackers {
|
||||
}
|
||||
},
|
||||
Ok(req_res::v1::AvailableDataFetchingResponse::NoSuchData) => {},
|
||||
Err(e) => tracing::debug!(
|
||||
Err(e) => gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
?validator_index,
|
||||
@@ -310,7 +310,7 @@ impl RequestChunksFromValidators {
|
||||
while self.requesting_chunks.len() < num_requests {
|
||||
if let Some(validator_index) = self.shuffling.pop_back() {
|
||||
let validator = params.validator_authority_keys[validator_index.0 as usize].clone();
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator,
|
||||
?validator_index,
|
||||
@@ -379,7 +379,7 @@ impl RequestChunksFromValidators {
|
||||
metrics.on_chunk_request_invalid();
|
||||
self.error_count += 1;
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
?validator_index,
|
||||
@@ -388,7 +388,7 @@ impl RequestChunksFromValidators {
|
||||
} else {
|
||||
metrics.on_chunk_request_succeeded();
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
?validator_index,
|
||||
@@ -400,7 +400,7 @@ impl RequestChunksFromValidators {
|
||||
metrics.on_chunk_request_invalid();
|
||||
self.error_count += 1;
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
?validator_index,
|
||||
@@ -415,7 +415,7 @@ impl RequestChunksFromValidators {
|
||||
Err((validator_index, e)) => {
|
||||
self.error_count += 1;
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash= ?params.candidate_hash,
|
||||
err = ?e,
|
||||
@@ -479,7 +479,7 @@ impl RequestChunksFromValidators {
|
||||
}
|
||||
},
|
||||
Err(oneshot::Canceled) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
"Failed to reach the availability store"
|
||||
@@ -490,7 +490,7 @@ impl RequestChunksFromValidators {
|
||||
|
||||
loop {
|
||||
if self.is_unavailable(¶ms) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
erasure_root = ?params.erasure_root,
|
||||
@@ -521,7 +521,7 @@ impl RequestChunksFromValidators {
|
||||
¶ms.erasure_root,
|
||||
&data,
|
||||
) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
erasure_root = ?params.erasure_root,
|
||||
@@ -530,7 +530,7 @@ impl RequestChunksFromValidators {
|
||||
|
||||
Ok(data)
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
erasure_root = ?params.erasure_root,
|
||||
@@ -541,7 +541,7 @@ impl RequestChunksFromValidators {
|
||||
}
|
||||
},
|
||||
Err(err) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?params.candidate_hash,
|
||||
erasure_root = ?params.erasure_root,
|
||||
@@ -589,7 +589,7 @@ fn reconstructed_data_matches_root(
|
||||
let chunks = match obtain_chunks_v1(n_validators, data) {
|
||||
Ok(chunks) => chunks,
|
||||
Err(e) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Failed to obtain chunks",
|
||||
@@ -619,7 +619,7 @@ impl<S: SubsystemSender> RecoveryTask<S> {
|
||||
Ok(Some(data)) => return Ok(data),
|
||||
Ok(None) => {},
|
||||
Err(oneshot::Canceled) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?self.params.candidate_hash,
|
||||
"Failed to reach the availability store",
|
||||
@@ -669,7 +669,7 @@ impl Future for RecoveryHandle {
|
||||
|
||||
// these are reverse order, so remove is fine.
|
||||
for index in indices_to_remove {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?self.candidate_hash,
|
||||
"Receiver for available data dropped.",
|
||||
@@ -679,7 +679,7 @@ impl Future for RecoveryHandle {
|
||||
}
|
||||
|
||||
if self.awaiting.is_empty() {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?self.candidate_hash,
|
||||
"All receivers for available data dropped.",
|
||||
@@ -829,7 +829,7 @@ where
|
||||
});
|
||||
|
||||
if let Err(e) = ctx.spawn("recovery-task", Box::pin(remote)) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Failed to spawn a recovery task",
|
||||
@@ -862,7 +862,7 @@ where
|
||||
state.availability_lru.get(&candidate_hash).cloned().map(|v| v.into_result())
|
||||
{
|
||||
if let Err(e) = response_sender.send(result) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Error responding with an availability recovery result",
|
||||
@@ -898,7 +898,7 @@ where
|
||||
)
|
||||
.await,
|
||||
None => {
|
||||
tracing::warn!(target: LOG_TARGET, "SessionInfo is `None` at {:?}", state.live_block);
|
||||
gum::warn!(target: LOG_TARGET, "SessionInfo is `None` at {:?}", state.live_block);
|
||||
response_sender
|
||||
.send(Err(RecoveryError::Unavailable))
|
||||
.map_err(|_| error::Error::CanceledResponseSender)?;
|
||||
@@ -978,7 +978,7 @@ impl AvailabilityRecoverySubsystem {
|
||||
response_sender,
|
||||
&metrics,
|
||||
).await {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Error handling a recovery request",
|
||||
@@ -997,7 +997,7 @@ impl AvailabilityRecoverySubsystem {
|
||||
let _ = req.send_response(res.into());
|
||||
}
|
||||
Err(e) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Failed to query available data.",
|
||||
@@ -1008,7 +1008,7 @@ impl AvailabilityRecoverySubsystem {
|
||||
}
|
||||
}
|
||||
Err(jfyi) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
error = ?jfyi,
|
||||
"Decoding incoming request failed"
|
||||
|
||||
@@ -134,7 +134,7 @@ async fn overseer_send(
|
||||
overseer: &mut TestSubsystemContextHandle<AvailabilityRecoveryMessage>,
|
||||
msg: AvailabilityRecoveryMessage,
|
||||
) {
|
||||
tracing::trace!(msg = ?msg, "sending message");
|
||||
gum::trace!(msg = ?msg, "sending message");
|
||||
overseer
|
||||
.send(FromOverseer::Communication { msg })
|
||||
.timeout(TIMEOUT)
|
||||
@@ -145,9 +145,9 @@ async fn overseer_send(
|
||||
async fn overseer_recv(
|
||||
overseer: &mut TestSubsystemContextHandle<AvailabilityRecoveryMessage>,
|
||||
) -> AllMessages {
|
||||
tracing::trace!("waiting for message ...");
|
||||
gum::trace!("waiting for message ...");
|
||||
let msg = overseer.recv().timeout(TIMEOUT).await.expect("TIMEOUT is enough to recv.");
|
||||
tracing::trace!(msg = ?msg, "received message");
|
||||
gum::trace!(msg = ?msg, "received message");
|
||||
msg
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
futures = "0.3.21"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" }
|
||||
polkadot-node-subsystem-util = { path = "../../subsystem-util" }
|
||||
|
||||
@@ -179,7 +179,7 @@ impl BitfieldDistribution {
|
||||
let message = match ctx.recv().await {
|
||||
Ok(message) => message,
|
||||
Err(e) => {
|
||||
tracing::debug!(target: LOG_TARGET, err = ?e, "Failed to receive a message from Overseer, exiting");
|
||||
gum::debug!(target: LOG_TARGET, err = ?e, "Failed to receive a message from Overseer, exiting");
|
||||
return
|
||||
},
|
||||
};
|
||||
@@ -187,7 +187,7 @@ impl BitfieldDistribution {
|
||||
FromOverseer::Communication {
|
||||
msg: BitfieldDistributionMessage::DistributeBitfield(hash, signed_availability),
|
||||
} => {
|
||||
tracing::trace!(target: LOG_TARGET, ?hash, "Processing DistributeBitfield");
|
||||
gum::trace!(target: LOG_TARGET, ?hash, "Processing DistributeBitfield");
|
||||
handle_bitfield_distribution(
|
||||
&mut ctx,
|
||||
&mut state,
|
||||
@@ -200,7 +200,7 @@ impl BitfieldDistribution {
|
||||
FromOverseer::Communication {
|
||||
msg: BitfieldDistributionMessage::NetworkBridgeUpdateV1(event),
|
||||
} => {
|
||||
tracing::trace!(target: LOG_TARGET, "Processing NetworkMessage");
|
||||
gum::trace!(target: LOG_TARGET, "Processing NetworkMessage");
|
||||
// a network message was received
|
||||
handle_network_msg(&mut ctx, &mut state, &self.metrics, event).await;
|
||||
},
|
||||
@@ -213,7 +213,7 @@ impl BitfieldDistribution {
|
||||
for activated in activated {
|
||||
let relay_parent = activated.hash;
|
||||
|
||||
tracing::trace!(target: LOG_TARGET, relay_parent = %relay_parent, "activated");
|
||||
gum::trace!(target: LOG_TARGET, relay_parent = %relay_parent, "activated");
|
||||
let span = PerLeafSpan::new(activated.span, "bitfield-distribution");
|
||||
let _span = span.child("query-basics");
|
||||
|
||||
@@ -231,17 +231,17 @@ impl BitfieldDistribution {
|
||||
);
|
||||
},
|
||||
Err(e) => {
|
||||
tracing::warn!(target: LOG_TARGET, err = ?e, "query_basics has failed");
|
||||
gum::warn!(target: LOG_TARGET, err = ?e, "query_basics has failed");
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
},
|
||||
FromOverseer::Signal(OverseerSignal::BlockFinalized(hash, number)) => {
|
||||
tracing::trace!(target: LOG_TARGET, hash = %hash, number = %number, "block finalized");
|
||||
gum::trace!(target: LOG_TARGET, hash = %hash, number = %number, "block finalized");
|
||||
},
|
||||
FromOverseer::Signal(OverseerSignal::Conclude) => {
|
||||
tracing::trace!(target: LOG_TARGET, "Conclude");
|
||||
gum::trace!(target: LOG_TARGET, "Conclude");
|
||||
return
|
||||
},
|
||||
}
|
||||
@@ -254,7 +254,7 @@ async fn modify_reputation<Context>(ctx: &mut Context, peer: PeerId, rep: Rep)
|
||||
where
|
||||
Context: SubsystemContext<Message = BitfieldDistributionMessage>,
|
||||
{
|
||||
tracing::trace!(target: LOG_TARGET, ?rep, peer_id = %peer, "reputation change");
|
||||
gum::trace!(target: LOG_TARGET, ?rep, peer_id = %peer, "reputation change");
|
||||
|
||||
ctx.send_message(NetworkBridgeMessage::ReportPeer(peer, rep)).await
|
||||
}
|
||||
@@ -278,7 +278,7 @@ async fn handle_bitfield_distribution<Context>(
|
||||
let job_data: &mut _ = if let Some(ref mut job_data) = job_data {
|
||||
job_data
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = %relay_parent,
|
||||
"Not supposed to work on relay parent related data",
|
||||
@@ -288,7 +288,7 @@ async fn handle_bitfield_distribution<Context>(
|
||||
};
|
||||
let validator_set = &job_data.validator_set;
|
||||
if validator_set.is_empty() {
|
||||
tracing::trace!(target: LOG_TARGET, relay_parent = %relay_parent, "validator set is empty");
|
||||
gum::trace!(target: LOG_TARGET, relay_parent = %relay_parent, "validator set is empty");
|
||||
return
|
||||
}
|
||||
|
||||
@@ -296,11 +296,7 @@ async fn handle_bitfield_distribution<Context>(
|
||||
let validator = if let Some(validator) = validator_set.get(validator_index) {
|
||||
validator.clone()
|
||||
} else {
|
||||
tracing::trace!(
|
||||
target: LOG_TARGET,
|
||||
"Could not find a validator for index {}",
|
||||
validator_index
|
||||
);
|
||||
gum::trace!(target: LOG_TARGET, "Could not find a validator for index {}", validator_index);
|
||||
return
|
||||
};
|
||||
|
||||
@@ -374,7 +370,7 @@ async fn relay_message<Context>(
|
||||
drop(_span);
|
||||
|
||||
if interested_peers.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = %message.relay_parent,
|
||||
"no peers are interested in gossip for relay parent",
|
||||
@@ -400,7 +396,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
Context: SubsystemContext<Message = BitfieldDistributionMessage>,
|
||||
{
|
||||
let protocol_v1::BitfieldDistributionMessage::Bitfield(relay_parent, bitfield) = message;
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = %origin,
|
||||
?relay_parent,
|
||||
@@ -432,7 +428,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
|
||||
let validator_set = &job_data.validator_set;
|
||||
if validator_set.is_empty() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = %relay_parent,
|
||||
?origin,
|
||||
@@ -460,7 +456,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
if !received_set.contains(&validator) {
|
||||
received_set.insert(validator.clone());
|
||||
} else {
|
||||
tracing::trace!(target: LOG_TARGET, ?validator_index, ?origin, "Duplicate message");
|
||||
gum::trace!(target: LOG_TARGET, ?validator_index, ?origin, "Duplicate message");
|
||||
modify_reputation(ctx, origin, COST_PEER_DUPLICATE_MESSAGE).await;
|
||||
return
|
||||
};
|
||||
@@ -469,7 +465,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
|
||||
// only relay_message a message of a validator once
|
||||
if let Some(old_message) = one_per_validator.get(&validator) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
"already received a message for validator",
|
||||
@@ -512,12 +508,12 @@ async fn handle_network_msg<Context>(
|
||||
|
||||
match bridge_message {
|
||||
NetworkBridgeEvent::PeerConnected(peerid, role, _) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peerid, ?role, "Peer connected");
|
||||
gum::trace!(target: LOG_TARGET, ?peerid, ?role, "Peer connected");
|
||||
// insert if none already present
|
||||
state.peer_views.entry(peerid).or_default();
|
||||
},
|
||||
NetworkBridgeEvent::PeerDisconnected(peerid) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peerid, "Peer disconnected");
|
||||
gum::trace!(target: LOG_TARGET, ?peerid, "Peer disconnected");
|
||||
// get rid of superfluous data
|
||||
state.peer_views.remove(&peerid);
|
||||
},
|
||||
@@ -531,11 +527,11 @@ async fn handle_network_msg<Context>(
|
||||
}
|
||||
},
|
||||
NetworkBridgeEvent::PeerViewChange(peerid, view) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peerid, ?view, "Peer view change");
|
||||
gum::trace!(target: LOG_TARGET, ?peerid, ?view, "Peer view change");
|
||||
handle_peer_view_change(ctx, state, peerid, view).await;
|
||||
},
|
||||
NetworkBridgeEvent::OurViewChange(view) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?view, "Our view change");
|
||||
gum::trace!(target: LOG_TARGET, ?view, "Our view change");
|
||||
handle_our_view_change(state, view);
|
||||
},
|
||||
NetworkBridgeEvent::PeerMessage(remote, message) =>
|
||||
@@ -549,7 +545,7 @@ fn handle_our_view_change(state: &mut ProtocolState, view: OurView) {
|
||||
|
||||
for added in state.view.difference(&old_view) {
|
||||
if !state.per_relay_parent.contains_key(&added) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
added = %added,
|
||||
"Our view contains {} but the overseer never told use we should work on this",
|
||||
@@ -589,7 +585,7 @@ async fn handle_peer_view_change<Context>(
|
||||
);
|
||||
|
||||
if !lucky {
|
||||
tracing::trace!(target: LOG_TARGET, ?origin, "Peer view change is ignored");
|
||||
gum::trace!(target: LOG_TARGET, ?origin, "Peer view change is ignored");
|
||||
return
|
||||
}
|
||||
|
||||
@@ -637,7 +633,7 @@ async fn send_tracked_gossip_message<Context>(
|
||||
};
|
||||
|
||||
let _span = job_data.span.child("gossip");
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?dest,
|
||||
?validator,
|
||||
@@ -699,7 +695,7 @@ where
|
||||
(Ok(v), Ok(s)) =>
|
||||
Ok(Some((v, SigningContext { parent_hash: relay_parent, session_index: s }))),
|
||||
(Err(e), _) | (_, Err(e)) => {
|
||||
tracing::warn!(target: LOG_TARGET, err = ?e, "Failed to fetch basics from runtime API");
|
||||
gum::warn!(target: LOG_TARGET, err = ?e, "Failed to fetch basics from runtime API");
|
||||
Ok(None)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ edition = "2021"
|
||||
[dependencies]
|
||||
async-trait = "0.1.52"
|
||||
futures = "0.3.21"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
parity-scale-codec = { version = "3.1.0", default-features = false, features = ["derive"] }
|
||||
sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -374,7 +374,7 @@ where
|
||||
msg = ctx.recv().fuse() => match msg {
|
||||
Ok(FromOverseer::Signal(OverseerSignal::ActiveLeaves(active_leaves))) => {
|
||||
let ActiveLeavesUpdate { activated, deactivated } = active_leaves;
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "ActiveLeaves",
|
||||
has_activated = activated.is_some(),
|
||||
@@ -413,7 +413,7 @@ where
|
||||
}
|
||||
}
|
||||
Ok(FromOverseer::Signal(OverseerSignal::BlockFinalized(_hash, number))) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "BlockFinalized"
|
||||
);
|
||||
@@ -431,7 +431,7 @@ where
|
||||
Ok(FromOverseer::Communication { msg }) => match msg {
|
||||
NetworkBridgeMessage::ReportPeer(peer, rep) => {
|
||||
if !rep.is_benefit() {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
?rep,
|
||||
@@ -441,7 +441,7 @@ where
|
||||
network_service.report_peer(peer, rep);
|
||||
}
|
||||
NetworkBridgeMessage::DisconnectPeer(peer, peer_set) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "DisconnectPeer",
|
||||
?peer,
|
||||
@@ -450,7 +450,7 @@ where
|
||||
network_service.disconnect_peer(peer, peer_set);
|
||||
}
|
||||
NetworkBridgeMessage::SendValidationMessage(peers, msg) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "SendValidationMessages",
|
||||
num_messages = 1,
|
||||
@@ -465,7 +465,7 @@ where
|
||||
);
|
||||
}
|
||||
NetworkBridgeMessage::SendValidationMessages(msgs) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "SendValidationMessages",
|
||||
num_messages = %msgs.len(),
|
||||
@@ -482,7 +482,7 @@ where
|
||||
}
|
||||
}
|
||||
NetworkBridgeMessage::SendCollationMessage(peers, msg) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "SendCollationMessages",
|
||||
num_messages = 1,
|
||||
@@ -497,7 +497,7 @@ where
|
||||
);
|
||||
}
|
||||
NetworkBridgeMessage::SendCollationMessages(msgs) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "SendCollationMessages",
|
||||
num_messages = %msgs.len(),
|
||||
@@ -514,7 +514,7 @@ where
|
||||
}
|
||||
}
|
||||
NetworkBridgeMessage::SendRequests(reqs, if_disconnected) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "SendRequests",
|
||||
num_requests = %reqs.len(),
|
||||
@@ -531,7 +531,7 @@ where
|
||||
peer_set,
|
||||
failed,
|
||||
} => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "ConnectToValidators",
|
||||
peer_set = ?peer_set,
|
||||
@@ -556,7 +556,7 @@ where
|
||||
validator_addrs,
|
||||
peer_set,
|
||||
} => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "ConnectToPeers",
|
||||
peer_set = ?peer_set,
|
||||
@@ -576,7 +576,7 @@ where
|
||||
NetworkBridgeMessage::NewGossipTopology {
|
||||
our_neighbors,
|
||||
} => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
action = "NewGossipTopology",
|
||||
neighbors = our_neighbors.len(),
|
||||
@@ -632,7 +632,7 @@ async fn handle_network_messages<AD: validator_discovery::AuthorityDiscovery>(
|
||||
Some(peer_set) => peer_set,
|
||||
};
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
action = "PeerConnected",
|
||||
peer_set = ?peer_set,
|
||||
@@ -716,7 +716,7 @@ async fn handle_network_messages<AD: validator_discovery::AuthorityDiscovery>(
|
||||
Some(peer_set) => peer_set,
|
||||
};
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
action = "PeerDisconnected",
|
||||
peer_set = ?peer_set,
|
||||
@@ -766,7 +766,7 @@ async fn handle_network_messages<AD: validator_discovery::AuthorityDiscovery>(
|
||||
|
||||
let v_messages = match v_messages {
|
||||
Err(_) => {
|
||||
tracing::debug!(target: LOG_TARGET, action = "ReportPeer");
|
||||
gum::debug!(target: LOG_TARGET, action = "ReportPeer");
|
||||
|
||||
network_service.report_peer(remote, MALFORMED_MESSAGE_COST);
|
||||
continue
|
||||
@@ -784,7 +784,7 @@ async fn handle_network_messages<AD: validator_discovery::AuthorityDiscovery>(
|
||||
|
||||
match c_messages {
|
||||
Err(_) => {
|
||||
tracing::debug!(target: LOG_TARGET, action = "ReportPeer");
|
||||
gum::debug!(target: LOG_TARGET, action = "ReportPeer");
|
||||
|
||||
network_service.report_peer(remote, MALFORMED_MESSAGE_COST);
|
||||
continue
|
||||
@@ -793,7 +793,7 @@ async fn handle_network_messages<AD: validator_discovery::AuthorityDiscovery>(
|
||||
if v_messages.is_empty() && c_messages.is_empty() {
|
||||
continue
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
action = "PeerMessages",
|
||||
peer = ?remote,
|
||||
@@ -896,7 +896,7 @@ where
|
||||
{
|
||||
Ok(()) => Ok(()),
|
||||
Err(UnexpectedAbort::SubsystemError(err)) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?err,
|
||||
"Shutting down Network Bridge due to error"
|
||||
@@ -908,7 +908,7 @@ where
|
||||
)))
|
||||
},
|
||||
Err(UnexpectedAbort::EventStreamConcluded) => {
|
||||
tracing::info!(
|
||||
gum::info!(
|
||||
target: LOG_TARGET,
|
||||
"Shutting down Network Bridge: underlying request stream concluded"
|
||||
);
|
||||
|
||||
@@ -176,14 +176,12 @@ impl Network for Arc<NetworkService<Block, Hash>> {
|
||||
|
||||
let peer_id = match peer_id {
|
||||
None => {
|
||||
tracing::debug!(target: LOG_TARGET, "Discovering authority failed");
|
||||
gum::debug!(target: LOG_TARGET, "Discovering authority failed");
|
||||
match pending_response
|
||||
.send(Err(RequestFailure::Network(OutboundFailure::DialFailure)))
|
||||
{
|
||||
Err(_) => tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Sending failed request response failed."
|
||||
),
|
||||
Err(_) =>
|
||||
gum::debug!(target: LOG_TARGET, "Sending failed request response failed."),
|
||||
Ok(_) => {},
|
||||
}
|
||||
return
|
||||
|
||||
@@ -66,7 +66,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
|
||||
let removed = peers_to_remove.len();
|
||||
state.previously_requested = new_peer_ids;
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_set,
|
||||
?num_peers,
|
||||
@@ -79,7 +79,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
|
||||
.set_reserved_peers(peer_set.into_protocol_name(), newly_requested)
|
||||
.await
|
||||
{
|
||||
tracing::warn!(target: LOG_TARGET, err = ?e, "AuthorityDiscoveryService returned an invalid multiaddress");
|
||||
gum::warn!(target: LOG_TARGET, err = ?e, "AuthorityDiscoveryService returned an invalid multiaddress");
|
||||
}
|
||||
// the addresses are known to be valid
|
||||
let _ = network_service
|
||||
@@ -116,7 +116,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
|
||||
newly_requested.extend(addresses);
|
||||
} else {
|
||||
failed_to_resolve += 1;
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Authority Discovery couldn't resolve {:?}",
|
||||
authority
|
||||
@@ -124,7 +124,7 @@ impl<N: Network, AD: AuthorityDiscovery> Service<N, AD> {
|
||||
}
|
||||
}
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer_set,
|
||||
?requested,
|
||||
|
||||
@@ -8,7 +8,7 @@ edition = "2021"
|
||||
always-assert = "0.1.2"
|
||||
futures = "0.3.21"
|
||||
futures-timer = "3"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -345,7 +345,7 @@ where
|
||||
|
||||
// This collation is not in the active-leaves set.
|
||||
if !state.view.contains(&relay_parent) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
"distribute collation message parent is outside of our view",
|
||||
@@ -364,7 +364,7 @@ where
|
||||
let (our_core, num_cores) = match determine_core(ctx, id, relay_parent).await? {
|
||||
Some(core) => core,
|
||||
None => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
para_id = %id,
|
||||
?relay_parent,
|
||||
@@ -380,7 +380,7 @@ where
|
||||
determine_our_validators(ctx, runtime, our_core, num_cores, relay_parent).await?;
|
||||
|
||||
if current_validators.validators.is_empty() {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
core = ?our_core,
|
||||
"there are no validators assigned to core",
|
||||
@@ -389,7 +389,7 @@ where
|
||||
return Ok(())
|
||||
}
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
para_id = %id,
|
||||
relay_parent = %relay_parent,
|
||||
@@ -472,7 +472,7 @@ where
|
||||
.get_session_info_by_index(ctx.sender(), relay_parent, session_index)
|
||||
.await?
|
||||
.session_info;
|
||||
tracing::debug!(target: LOG_TARGET, ?session_index, "Received session info");
|
||||
gum::debug!(target: LOG_TARGET, ?session_index, "Received session info");
|
||||
let groups = &info.validator_groups;
|
||||
let rotation_info = get_group_rotation_info(ctx, relay_parent).await?;
|
||||
|
||||
@@ -554,7 +554,7 @@ async fn advertise_collation<Context>(
|
||||
|
||||
match (state.collations.get_mut(&relay_parent), should_advertise) {
|
||||
(None, _) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
peer_id = %peer,
|
||||
@@ -563,7 +563,7 @@ async fn advertise_collation<Context>(
|
||||
return
|
||||
},
|
||||
(_, false) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
peer_id = %peer,
|
||||
@@ -572,7 +572,7 @@ async fn advertise_collation<Context>(
|
||||
return
|
||||
},
|
||||
(Some(collation), true) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
peer_id = %peer,
|
||||
@@ -626,7 +626,7 @@ where
|
||||
Some(id) if receipt.descriptor.para_id != id => {
|
||||
// If the ParaId of a collation requested to be distributed does not match
|
||||
// the one we expect, we ignore the message.
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
para_id = %receipt.descriptor.para_id,
|
||||
collating_on = %id,
|
||||
@@ -638,7 +638,7 @@ where
|
||||
.await?;
|
||||
},
|
||||
None => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
para_id = %receipt.descriptor.para_id,
|
||||
"DistributeCollation message while not collating on any",
|
||||
@@ -647,14 +647,14 @@ where
|
||||
}
|
||||
},
|
||||
ReportCollator(_) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
"ReportCollator message is not expected on the collator side of the protocol",
|
||||
);
|
||||
},
|
||||
NetworkBridgeUpdateV1(event) => {
|
||||
if let Err(e) = handle_network_msg(ctx, runtime, state, event).await {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Failed to handle incoming network message",
|
||||
@@ -686,14 +686,14 @@ async fn send_collation(
|
||||
};
|
||||
|
||||
if let Err(_) = request.send_outgoing_response(response) {
|
||||
tracing::warn!(target: LOG_TARGET, "Sending collation response failed");
|
||||
gum::warn!(target: LOG_TARGET, "Sending collation response failed");
|
||||
}
|
||||
|
||||
state.active_collation_fetches.push(
|
||||
async move {
|
||||
let r = rx.timeout(MAX_UNSHARED_UPLOAD_TIME).await;
|
||||
if r.is_none() {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
?peer_id,
|
||||
@@ -724,7 +724,7 @@ where
|
||||
|
||||
match msg {
|
||||
Declare(_, _, _) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?origin,
|
||||
"Declare message is not expected on the collator side of the protocol",
|
||||
@@ -735,7 +735,7 @@ where
|
||||
.await;
|
||||
},
|
||||
AdvertiseCollation(_) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?origin,
|
||||
"AdvertiseCollation message is not expected on the collator side of the protocol",
|
||||
@@ -753,7 +753,7 @@ where
|
||||
},
|
||||
CollationSeconded(relay_parent, statement) => {
|
||||
if !matches!(statement.unchecked_payload(), Statement::Seconded(_)) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
?statement,
|
||||
?origin,
|
||||
@@ -769,7 +769,7 @@ where
|
||||
state.collation_result_senders.remove(&statement.payload().candidate_hash());
|
||||
|
||||
if let Some(sender) = removed {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?statement,
|
||||
?origin,
|
||||
@@ -806,7 +806,7 @@ where
|
||||
collation.status.advance_to_requested();
|
||||
(collation.receipt.clone(), collation.pov.clone())
|
||||
} else {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = %req.payload.relay_parent,
|
||||
"received a `RequestCollation` for a relay parent we don't have collation stored.",
|
||||
@@ -823,7 +823,7 @@ where
|
||||
state.waiting_collation_fetches.entry(req.payload.relay_parent).or_default();
|
||||
|
||||
if !waiting.waiting_peers.insert(req.peer) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Dropping incoming request as peer has a request in flight already."
|
||||
);
|
||||
@@ -840,7 +840,7 @@ where
|
||||
}
|
||||
},
|
||||
Some(our_para_id) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
for_para_id = %req.payload.para_id,
|
||||
our_para_id = %our_para_id,
|
||||
@@ -848,7 +848,7 @@ where
|
||||
);
|
||||
},
|
||||
None => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
for_para_id = %req.payload.para_id,
|
||||
"received a `RequestCollation` while not collating on any para",
|
||||
@@ -896,9 +896,9 @@ where
|
||||
PeerConnected(peer_id, observed_role, maybe_authority) => {
|
||||
// If it is possible that a disconnected validator would attempt a reconnect
|
||||
// it should be handled here.
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, ?observed_role, "Peer connected");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, ?observed_role, "Peer connected");
|
||||
if let Some(authority_ids) = maybe_authority {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?authority_ids,
|
||||
?peer_id,
|
||||
@@ -910,16 +910,16 @@ where
|
||||
}
|
||||
},
|
||||
PeerViewChange(peer_id, view) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, ?view, "Peer view change");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, ?view, "Peer view change");
|
||||
handle_peer_view_change(ctx, state, peer_id, view).await;
|
||||
},
|
||||
PeerDisconnected(peer_id) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer_id, "Peer disconnected");
|
||||
gum::trace!(target: LOG_TARGET, ?peer_id, "Peer disconnected");
|
||||
state.peer_views.remove(&peer_id);
|
||||
state.peer_ids.remove(&peer_id);
|
||||
},
|
||||
OurViewChange(view) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?view, "Own view change");
|
||||
gum::trace!(target: LOG_TARGET, ?view, "Own view change");
|
||||
handle_our_view_change(state, view).await?;
|
||||
},
|
||||
PeerMessage(remote, msg) => {
|
||||
@@ -936,25 +936,25 @@ where
|
||||
/// Handles our view changes.
|
||||
async fn handle_our_view_change(state: &mut State, view: OurView) -> Result<()> {
|
||||
for removed in state.view.difference(&view) {
|
||||
tracing::debug!(target: LOG_TARGET, relay_parent = ?removed, "Removing relay parent because our view changed.");
|
||||
gum::debug!(target: LOG_TARGET, relay_parent = ?removed, "Removing relay parent because our view changed.");
|
||||
|
||||
if let Some(collation) = state.collations.remove(removed) {
|
||||
state.collation_result_senders.remove(&collation.receipt.hash());
|
||||
|
||||
match collation.status {
|
||||
CollationStatus::Created => tracing::warn!(
|
||||
CollationStatus::Created => gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?collation.receipt.hash(),
|
||||
pov_hash = ?collation.pov.hash(),
|
||||
"Collation wasn't advertised to any validator.",
|
||||
),
|
||||
CollationStatus::Advertised => tracing::debug!(
|
||||
CollationStatus::Advertised => gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?collation.receipt.hash(),
|
||||
pov_hash = ?collation.pov.hash(),
|
||||
"Collation was advertised but not requested by any validator.",
|
||||
),
|
||||
CollationStatus::Requested => tracing::debug!(
|
||||
CollationStatus::Requested => gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate_hash = ?collation.receipt.hash(),
|
||||
pov_hash = ?collation.pov.hash(),
|
||||
@@ -1035,7 +1035,7 @@ where
|
||||
}
|
||||
Err(error) => {
|
||||
let jfyi = error.split().map_err(incoming::Error::from)?;
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
error = ?jfyi,
|
||||
"Decoding incoming request failed"
|
||||
|
||||
@@ -226,7 +226,7 @@ fn test_harness<T: Future<Output = TestHarness>>(
|
||||
const TIMEOUT: Duration = Duration::from_millis(100);
|
||||
|
||||
async fn overseer_send(overseer: &mut VirtualOverseer, msg: CollatorProtocolMessage) {
|
||||
tracing::trace!(?msg, "sending message");
|
||||
gum::trace!(?msg, "sending message");
|
||||
overseer
|
||||
.send(FromOverseer::Communication { msg })
|
||||
.timeout(TIMEOUT)
|
||||
@@ -239,7 +239,7 @@ async fn overseer_recv(overseer: &mut VirtualOverseer) -> AllMessages {
|
||||
.await
|
||||
.expect(&format!("{:?} is more than enough to receive messages", TIMEOUT));
|
||||
|
||||
tracing::trace!(?msg, "received message");
|
||||
gum::trace!(?msg, "received message");
|
||||
|
||||
msg
|
||||
}
|
||||
@@ -248,7 +248,7 @@ async fn overseer_recv_with_timeout(
|
||||
overseer: &mut VirtualOverseer,
|
||||
timeout: Duration,
|
||||
) -> Option<AllMessages> {
|
||||
tracing::trace!("waiting for message...");
|
||||
gum::trace!("waiting for message...");
|
||||
overseer.recv().timeout(timeout).await
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ pub fn log_error(result: Result<()>, ctx: &'static str) -> std::result::Result<(
|
||||
match result.into_nested()? {
|
||||
Ok(()) => Ok(()),
|
||||
Err(jfyi) => {
|
||||
tracing::warn!(target: LOG_TARGET, error = ?jfyi, ctx);
|
||||
gum::warn!(target: LOG_TARGET, error = ?jfyi, ctx);
|
||||
Ok(())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ async fn modify_reputation<Context>(ctx: &mut Context, peer: PeerId, rep: Rep)
|
||||
where
|
||||
Context: SubsystemContext,
|
||||
{
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
rep = ?rep,
|
||||
peer_id = %peer,
|
||||
|
||||
@@ -371,7 +371,7 @@ impl ActiveParas {
|
||||
let (validators, groups, rotation_info, cores) = match (mv, mg, mc) {
|
||||
(Some(v), Some((g, r)), Some(c)) => (v, g, r, c),
|
||||
_ => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
"Failed to query runtime API for relay-parent",
|
||||
@@ -393,7 +393,7 @@ impl ActiveParas {
|
||||
cores.get(core_now.0 as usize).and_then(|c| c.para_id())
|
||||
},
|
||||
None => {
|
||||
tracing::trace!(target: LOG_TARGET, ?relay_parent, "Not a validator");
|
||||
gum::trace!(target: LOG_TARGET, ?relay_parent, "Not a validator");
|
||||
|
||||
continue
|
||||
},
|
||||
@@ -411,7 +411,7 @@ impl ActiveParas {
|
||||
let entry = self.current_assignments.entry(para_now).or_default();
|
||||
*entry += 1;
|
||||
if *entry == 1 {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
para_id = ?para_now,
|
||||
@@ -435,7 +435,7 @@ impl ActiveParas {
|
||||
*occupied.get_mut() -= 1;
|
||||
if *occupied.get() == 0 {
|
||||
occupied.remove_entry();
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
para_id = ?cur,
|
||||
"Unassigned from a parachain",
|
||||
@@ -533,7 +533,7 @@ impl CollationsPerRelayParent {
|
||||
// If finished one does not match waiting_collation, then we already dequeued another fetch
|
||||
// to replace it.
|
||||
if self.waiting_collation != finished_one {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
waiting_collation = ?self.waiting_collation,
|
||||
?finished_one,
|
||||
@@ -728,7 +728,7 @@ async fn request_collation<Context>(
|
||||
Context: SubsystemContext<Message = CollatorProtocolMessage>,
|
||||
{
|
||||
if !state.view.contains(&relay_parent) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = %peer_id,
|
||||
para_id = %para_id,
|
||||
@@ -739,7 +739,7 @@ async fn request_collation<Context>(
|
||||
}
|
||||
let pending_collation = PendingCollation::new(relay_parent, ¶_id, &peer_id);
|
||||
if state.requested_collations.contains_key(&pending_collation) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = %pending_collation.peer_id,
|
||||
%pending_collation.para_id,
|
||||
@@ -768,7 +768,7 @@ async fn request_collation<Context>(
|
||||
.requested_collations
|
||||
.insert(PendingCollation::new(relay_parent, ¶_id, &peer_id), per_request);
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = %peer_id,
|
||||
%para_id,
|
||||
@@ -821,7 +821,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
}
|
||||
|
||||
if state.active_paras.is_current(¶_id) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = ?origin,
|
||||
?collator_id,
|
||||
@@ -831,7 +831,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
|
||||
peer_data.set_collating(collator_id, para_id);
|
||||
} else {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = ?origin,
|
||||
?collator_id,
|
||||
@@ -840,7 +840,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
);
|
||||
|
||||
modify_reputation(ctx, origin.clone(), COST_UNNEEDED_COLLATOR).await;
|
||||
tracing::trace!(target: LOG_TARGET, "Disconnecting unneeded collator");
|
||||
gum::trace!(target: LOG_TARGET, "Disconnecting unneeded collator");
|
||||
disconnect_peer(ctx, origin).await;
|
||||
}
|
||||
},
|
||||
@@ -850,7 +850,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
.get(&relay_parent)
|
||||
.map(|s| s.child("advertise-collation"));
|
||||
if !state.view.contains(&relay_parent) {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = ?origin,
|
||||
?relay_parent,
|
||||
@@ -871,7 +871,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
|
||||
match peer_data.insert_advertisement(relay_parent, &state.view) {
|
||||
Ok((id, para_id)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = ?origin,
|
||||
%para_id,
|
||||
@@ -897,7 +897,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
}
|
||||
},
|
||||
Err(error) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = ?origin,
|
||||
?relay_parent,
|
||||
@@ -910,7 +910,7 @@ async fn process_incoming_peer_message<Context>(
|
||||
}
|
||||
},
|
||||
CollationSeconded(_, _) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
peer_id = ?origin,
|
||||
"Unexpected `CollationSeconded` message, decreasing reputation",
|
||||
@@ -976,7 +976,7 @@ where
|
||||
// declare.
|
||||
if let Some(para_id) = peer_data.collating_para() {
|
||||
if !state.active_paras.is_current(¶_id) {
|
||||
tracing::trace!(target: LOG_TARGET, "Disconnecting peer on view change");
|
||||
gum::trace!(target: LOG_TARGET, "Disconnecting peer on view change");
|
||||
disconnect_peer(ctx, peer_id.clone()).await;
|
||||
}
|
||||
}
|
||||
@@ -1040,14 +1040,14 @@ async fn process_msg<Context>(
|
||||
|
||||
match msg {
|
||||
CollateOn(id) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
para_id = %id,
|
||||
"CollateOn message is not expected on the validator side of the protocol",
|
||||
);
|
||||
},
|
||||
DistributeCollation(_, _, _) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
"DistributeCollation message is not expected on the validator side of the protocol",
|
||||
);
|
||||
@@ -1057,7 +1057,7 @@ async fn process_msg<Context>(
|
||||
},
|
||||
NetworkBridgeUpdateV1(event) => {
|
||||
if let Err(e) = handle_network_msg(ctx, state, keystore, event).await {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Failed to handle incoming network message",
|
||||
@@ -1075,7 +1075,7 @@ async fn process_msg<Context>(
|
||||
collations.status = CollationStatus::Seconded;
|
||||
}
|
||||
} else {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = ?parent,
|
||||
"Collation has been seconded, but the relay parent is deactivated",
|
||||
@@ -1089,7 +1089,7 @@ async fn process_msg<Context>(
|
||||
Some(candidate_receipt.commitments_hash) =>
|
||||
entry.remove().0,
|
||||
Entry::Occupied(_) => {
|
||||
tracing::error!(
|
||||
gum::error!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = ?parent,
|
||||
candidate = ?candidate_receipt.hash(),
|
||||
@@ -1150,7 +1150,7 @@ where
|
||||
res = ctx.recv().fuse() => {
|
||||
match res {
|
||||
Ok(FromOverseer::Communication { msg }) => {
|
||||
tracing::trace!(target: LOG_TARGET, msg = ?msg, "received a message");
|
||||
gum::trace!(target: LOG_TARGET, msg = ?msg, "received a message");
|
||||
process_msg(
|
||||
&mut ctx,
|
||||
&keystore,
|
||||
@@ -1170,7 +1170,7 @@ where
|
||||
}
|
||||
res = state.collation_fetch_timeouts.select_next_some() => {
|
||||
let (collator_id, relay_parent) = res;
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
?collator_id,
|
||||
@@ -1233,7 +1233,7 @@ async fn dequeue_next_collation_and_fetch(
|
||||
.get_mut(&relay_parent)
|
||||
.and_then(|c| c.get_next_collation_to_fetch(Some(previous_fetch)))
|
||||
{
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
?id,
|
||||
@@ -1260,7 +1260,7 @@ async fn handle_collation_fetched_result<Context>(
|
||||
let (candidate_receipt, pov) = match res {
|
||||
Ok(res) => res,
|
||||
Err(e) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
relay_parent = ?collation_event.1.relay_parent,
|
||||
para_id = ?collation_event.1.para_id,
|
||||
@@ -1277,7 +1277,7 @@ async fn handle_collation_fetched_result<Context>(
|
||||
|
||||
if let Some(collations) = state.collations_per_relay_parent.get_mut(&relay_parent) {
|
||||
if let CollationStatus::Seconded = collations.status {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
"Already seconded - no longer interested in collation fetch result."
|
||||
@@ -1298,7 +1298,7 @@ async fn handle_collation_fetched_result<Context>(
|
||||
|
||||
entry.insert(collation_event);
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
candidate = ?candidate_receipt.hash(),
|
||||
@@ -1320,7 +1320,7 @@ async fn disconnect_inactive_peers<Context>(
|
||||
{
|
||||
for (peer, peer_data) in peers {
|
||||
if peer_data.is_inactive(&eviction_policy) {
|
||||
tracing::trace!(target: LOG_TARGET, "Disconnecting inactive peer");
|
||||
gum::trace!(target: LOG_TARGET, "Disconnecting inactive peer");
|
||||
disconnect_peer(ctx, peer.clone()).await;
|
||||
}
|
||||
}
|
||||
@@ -1353,7 +1353,7 @@ async fn poll_collation_response(
|
||||
per_req: &mut PerRequest,
|
||||
) -> CollationFetchResult {
|
||||
if never!(per_req.from_collator.is_terminated()) {
|
||||
tracing::error!(
|
||||
gum::error!(
|
||||
target: LOG_TARGET,
|
||||
"We remove pending responses once received, this should not happen."
|
||||
);
|
||||
@@ -1371,7 +1371,7 @@ async fn poll_collation_response(
|
||||
|
||||
let result = match response {
|
||||
Err(RequestError::InvalidResponse(err)) => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?pending_collation.relay_parent,
|
||||
para_id = ?pending_collation.para_id,
|
||||
@@ -1382,7 +1382,7 @@ async fn poll_collation_response(
|
||||
CollationFetchResult::Error(Some(COST_CORRUPTED_MESSAGE))
|
||||
},
|
||||
Err(err) if err.is_timed_out() => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?pending_collation.relay_parent,
|
||||
para_id = ?pending_collation.para_id,
|
||||
@@ -1394,7 +1394,7 @@ async fn poll_collation_response(
|
||||
CollationFetchResult::Error(None)
|
||||
},
|
||||
Err(RequestError::NetworkError(err)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?pending_collation.relay_parent,
|
||||
para_id = ?pending_collation.para_id,
|
||||
@@ -1409,7 +1409,7 @@ async fn poll_collation_response(
|
||||
CollationFetchResult::Error(Some(COST_NETWORK_ERROR))
|
||||
},
|
||||
Err(RequestError::Canceled(err)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?pending_collation.relay_parent,
|
||||
para_id = ?pending_collation.para_id,
|
||||
@@ -1422,7 +1422,7 @@ async fn poll_collation_response(
|
||||
Ok(CollationFetchingResponse::Collation(receipt, _))
|
||||
if receipt.descriptor().para_id != pending_collation.para_id =>
|
||||
{
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
expected_para_id = ?pending_collation.para_id,
|
||||
got_para_id = ?receipt.descriptor().para_id,
|
||||
@@ -1433,7 +1433,7 @@ async fn poll_collation_response(
|
||||
CollationFetchResult::Error(Some(COST_WRONG_PARA))
|
||||
},
|
||||
Ok(CollationFetchingResponse::Collation(receipt, pov)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
para_id = %pending_collation.para_id,
|
||||
hash = ?pending_collation.relay_parent,
|
||||
@@ -1447,7 +1447,7 @@ async fn poll_collation_response(
|
||||
let result = tx.send((receipt, pov));
|
||||
|
||||
if let Err(_) = result {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?pending_collation.relay_parent,
|
||||
para_id = ?pending_collation.para_id,
|
||||
|
||||
@@ -166,7 +166,7 @@ fn test_harness<T: Future<Output = VirtualOverseer>>(test: impl FnOnce(TestHarne
|
||||
const TIMEOUT: Duration = Duration::from_millis(200);
|
||||
|
||||
async fn overseer_send(overseer: &mut VirtualOverseer, msg: CollatorProtocolMessage) {
|
||||
tracing::trace!("Sending message:\n{:?}", &msg);
|
||||
gum::trace!("Sending message:\n{:?}", &msg);
|
||||
overseer
|
||||
.send(FromOverseer::Communication { msg })
|
||||
.timeout(TIMEOUT)
|
||||
@@ -179,7 +179,7 @@ async fn overseer_recv(overseer: &mut VirtualOverseer) -> AllMessages {
|
||||
.await
|
||||
.expect(&format!("{:?} is enough to receive messages.", TIMEOUT));
|
||||
|
||||
tracing::trace!("Received message:\n{:?}", &msg);
|
||||
gum::trace!("Received message:\n{:?}", &msg);
|
||||
|
||||
msg
|
||||
}
|
||||
@@ -188,7 +188,7 @@ async fn overseer_recv_with_timeout(
|
||||
overseer: &mut VirtualOverseer,
|
||||
timeout: Duration,
|
||||
) -> Option<AllMessages> {
|
||||
tracing::trace!("Waiting for message...");
|
||||
gum::trace!("Waiting for message...");
|
||||
overseer.recv().timeout(timeout).await
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ fn act_on_advertisement() {
|
||||
let TestHarness { mut virtual_overseer } = test_harness;
|
||||
|
||||
let pair = CollatorPair::generate().0;
|
||||
tracing::trace!("activating");
|
||||
gum::trace!("activating");
|
||||
|
||||
overseer_send(
|
||||
&mut virtual_overseer,
|
||||
|
||||
@@ -6,7 +6,7 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
futures = "0.3.21"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
derive_more = "0.99.17"
|
||||
parity-scale-codec = { version = "3.1.0", features = ["std"] }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
|
||||
@@ -64,7 +64,7 @@ pub type FatalResult<T> = std::result::Result<T, FatalError>;
|
||||
pub fn log_error(result: Result<()>, ctx: &'static str) -> std::result::Result<(), FatalError> {
|
||||
match result.into_nested()? {
|
||||
Err(jfyi) => {
|
||||
tracing::warn!(target: LOG_TARGET, error = ?jfyi, ctx);
|
||||
gum::warn!(target: LOG_TARGET, error = ?jfyi, ctx);
|
||||
Ok(())
|
||||
},
|
||||
Ok(()) => Ok(()),
|
||||
|
||||
@@ -62,11 +62,11 @@ pub type JfyiErrorResult<T> = std::result::Result<T, JfyiError>;
|
||||
pub fn log_error(result: Result<()>) -> std::result::Result<(), FatalError> {
|
||||
match result.into_nested()? {
|
||||
Err(error @ JfyiError::ImportCanceled(_)) => {
|
||||
tracing::debug!(target: LOG_TARGET, error = ?error);
|
||||
gum::debug!(target: LOG_TARGET, error = ?error);
|
||||
Ok(())
|
||||
},
|
||||
Err(JfyiError::NotAValidator(peer)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
"Dropping message from peer (unknown authority id)"
|
||||
@@ -74,7 +74,7 @@ pub fn log_error(result: Result<()>) -> std::result::Result<(), FatalError> {
|
||||
Ok(())
|
||||
},
|
||||
Err(error) => {
|
||||
tracing::warn!(target: LOG_TARGET, error = ?error);
|
||||
gum::warn!(target: LOG_TARGET, error = ?error);
|
||||
Ok(())
|
||||
},
|
||||
Ok(()) => Ok(()),
|
||||
|
||||
@@ -168,7 +168,7 @@ where
|
||||
match log_error(self.run_inner().await) {
|
||||
Ok(()) => {},
|
||||
Err(fatal) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
error = ?fatal,
|
||||
"Shutting down"
|
||||
@@ -212,7 +212,7 @@ where
|
||||
// Immediately drop requests from peers that already have requests in flight or have
|
||||
// been banned recently (flood protection):
|
||||
if self.pending_imports.peer_is_pending(&peer) || self.banned_peers.contains(&peer) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
"Dropping message from peer (banned/pending import)"
|
||||
|
||||
@@ -89,11 +89,7 @@ impl DisputeSender {
|
||||
let candidate_hash = req.0.candidate_receipt.hash();
|
||||
match self.disputes.entry(candidate_hash) {
|
||||
Entry::Occupied(_) => {
|
||||
tracing::trace!(
|
||||
target: LOG_TARGET,
|
||||
?candidate_hash,
|
||||
"Dispute sending already active."
|
||||
);
|
||||
gum::trace!(target: LOG_TARGET, ?candidate_hash, "Dispute sending already active.");
|
||||
return Ok(())
|
||||
},
|
||||
Entry::Vacant(vacant) => {
|
||||
@@ -168,7 +164,7 @@ impl DisputeSender {
|
||||
let task = match self.disputes.get_mut(&candidate_hash) {
|
||||
None => {
|
||||
// Can happen when a dispute ends, with messages still in queue:
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?result,
|
||||
"Received `FromSendingTask::Finished` for non existing dispute."
|
||||
@@ -215,7 +211,7 @@ impl DisputeSender {
|
||||
.await?;
|
||||
let our_index = match info.validator_info.our_index {
|
||||
None => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
"Not a validator in that session - not starting dispute sending."
|
||||
);
|
||||
@@ -226,7 +222,7 @@ impl DisputeSender {
|
||||
|
||||
let votes = match get_candidate_votes(ctx, session_index, candidate_hash).await? {
|
||||
None => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?session_index,
|
||||
?candidate_hash,
|
||||
|
||||
@@ -159,7 +159,7 @@ impl SendTask {
|
||||
pub fn on_finished_send(&mut self, authority: &AuthorityDiscoveryId, result: TaskResult) {
|
||||
match result {
|
||||
TaskResult::Failed(err) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?authority,
|
||||
candidate_hash = %self.request.0.candidate_receipt.hash(),
|
||||
@@ -176,7 +176,7 @@ impl SendTask {
|
||||
None => {
|
||||
// Can happen when a sending became irrelevant while the response was already
|
||||
// queued.
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
candidate = ?self.request.0.candidate_receipt.hash(),
|
||||
?authority,
|
||||
@@ -290,7 +290,7 @@ async fn wait_response_task(
|
||||
TaskFinish { candidate_hash, receiver, result: TaskResult::Succeeded },
|
||||
};
|
||||
if let Err(err) = tx.feed(msg).await {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
%err,
|
||||
"Failed to notify susystem about dispute sending result."
|
||||
|
||||
@@ -175,7 +175,7 @@ fn received_request_triggers_import() {
|
||||
assert_matches!(
|
||||
rx_response.await,
|
||||
Err(err) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Request got dropped - other request already in flight"
|
||||
@@ -197,7 +197,7 @@ fn received_request_triggers_import() {
|
||||
assert_matches!(
|
||||
rx_response.await,
|
||||
Err(err) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Request got dropped - other request already in flight"
|
||||
@@ -223,7 +223,7 @@ fn received_request_triggers_import() {
|
||||
assert_matches!(
|
||||
rx_response.await,
|
||||
Err(err) => {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Request got dropped - peer is banned."
|
||||
@@ -244,7 +244,7 @@ fn received_request_triggers_import() {
|
||||
)
|
||||
.await;
|
||||
|
||||
tracing::trace!(target: LOG_TARGET, "Concluding.");
|
||||
gum::trace!(target: LOG_TARGET, "Concluding.");
|
||||
conclude(&mut handle).await;
|
||||
};
|
||||
test_harness(test);
|
||||
@@ -562,7 +562,7 @@ async fn nested_network_dispute_request<'a, F, O>(
|
||||
if let Some(sent_feedback) = sent_feedback {
|
||||
sent_feedback.send(()).unwrap();
|
||||
}
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
"Valid import happened."
|
||||
);
|
||||
@@ -735,7 +735,7 @@ where
|
||||
match subsystem.run(ctx).await {
|
||||
Ok(()) => {},
|
||||
Err(fatal) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?fatal,
|
||||
"Dispute distribution exited with fatal error."
|
||||
|
||||
@@ -19,7 +19,7 @@ futures = "0.3.21"
|
||||
futures-timer = "3.0.2"
|
||||
rand = { version = "0.8.5", default-features = false }
|
||||
rand_chacha = { version = "0.3.1", default-features = false }
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
|
||||
[dev-dependencies]
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -156,7 +156,7 @@ where
|
||||
match result {
|
||||
Ok(message) => message,
|
||||
Err(e) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
err = ?e,
|
||||
"Failed to receive a message from Overseer, exiting",
|
||||
@@ -173,11 +173,11 @@ where
|
||||
activated,
|
||||
..
|
||||
})) => {
|
||||
tracing::trace!(target: LOG_TARGET, "active leaves signal");
|
||||
gum::trace!(target: LOG_TARGET, "active leaves signal");
|
||||
|
||||
let leaves = activated.into_iter().map(|a| a.hash);
|
||||
if let Err(e) = self.handle_active_leaves(&mut ctx, leaves).await {
|
||||
tracing::debug!(target: LOG_TARGET, error = ?e);
|
||||
gum::debug!(target: LOG_TARGET, error = ?e);
|
||||
}
|
||||
},
|
||||
FromOverseer::Signal(OverseerSignal::BlockFinalized(_hash, _number)) => {},
|
||||
@@ -215,7 +215,7 @@ where
|
||||
if let Some((session_index, relay_parent)) = maybe_issue_connection {
|
||||
let is_new_session = maybe_new_session.is_some();
|
||||
if is_new_session {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
%session_index,
|
||||
"New session detected",
|
||||
@@ -312,7 +312,7 @@ where
|
||||
resolved.insert(authority, addrs);
|
||||
} else {
|
||||
failures += 1;
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Couldn't resolve addresses of authority: {:?}",
|
||||
authority
|
||||
@@ -320,7 +320,7 @@ where
|
||||
}
|
||||
}
|
||||
self.resolved_authorities = resolved;
|
||||
tracing::debug!(target: LOG_TARGET, %num, "Issuing a connection request");
|
||||
gum::debug!(target: LOG_TARGET, %num, "Issuing a connection request");
|
||||
|
||||
ctx.send_message(NetworkBridgeMessage::ConnectToResolvedValidators {
|
||||
validator_addrs,
|
||||
@@ -335,7 +335,7 @@ where
|
||||
match self.failure_start {
|
||||
None => self.failure_start = Some(timestamp),
|
||||
Some(first) if first.elapsed() >= LOW_CONNECTIVITY_WARN_DELAY => {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
connected = ?(num - failures),
|
||||
target = ?num,
|
||||
@@ -343,7 +343,7 @@ where
|
||||
);
|
||||
},
|
||||
Some(_) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
connected = ?(num - failures),
|
||||
target = ?num,
|
||||
@@ -399,13 +399,13 @@ where
|
||||
// we already know it is broken.
|
||||
// https://github.com/paritytech/polkadot/issues/3921
|
||||
if connected_ratio <= LOW_CONNECTIVITY_WARN_THRESHOLD {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
"Connectivity seems low, we are only connected to {}% of available validators (see debug logs for details)", connected_ratio
|
||||
);
|
||||
}
|
||||
let pretty = PrettyAuthorities(unconnected_authorities);
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?connected_ratio,
|
||||
?absolute_connected,
|
||||
@@ -425,7 +425,7 @@ where
|
||||
Context: overseer::SubsystemContext<Message = GossipSupportMessage>,
|
||||
{
|
||||
let authorities = util::request_authorities(relay_parent, ctx.sender()).await.await??;
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
authority_count = ?authorities.len(),
|
||||
"Determined relevant authorities",
|
||||
|
||||
@@ -372,7 +372,7 @@ fn test_log_output() {
|
||||
m
|
||||
};
|
||||
let pretty = PrettyAuthorities(unconnected_authorities.iter());
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
unconnected_authorities = %pretty,
|
||||
"Connectivity Report"
|
||||
|
||||
@@ -7,7 +7,7 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
futures = "0.3.21"
|
||||
tracing = "0.1.32"
|
||||
gum = { package = "tracing-gum", path = "../../gum" }
|
||||
polkadot-primitives = { path = "../../../primitives" }
|
||||
sp-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||
sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -87,8 +87,8 @@ pub fn log_error(result: Result<()>, ctx: &'static str) -> std::result::Result<(
|
||||
Err(jfyi) => {
|
||||
match jfyi {
|
||||
JfyiError::RequestedUnannouncedCandidate(_, _) =>
|
||||
tracing::warn!(target: LOG_TARGET, error = %jfyi, ctx),
|
||||
_ => tracing::debug!(target: LOG_TARGET, error = %jfyi, ctx),
|
||||
gum::warn!(target: LOG_TARGET, error = %jfyi, ctx),
|
||||
_ => gum::debug!(target: LOG_TARGET, error = %jfyi, ctx),
|
||||
}
|
||||
Ok(())
|
||||
},
|
||||
|
||||
@@ -169,7 +169,7 @@ impl VcPerPeerTracker {
|
||||
/// based on a message that we have sent it from our local pool.
|
||||
fn note_local(&mut self, h: CandidateHash) {
|
||||
if !note_hash(&mut self.local_observed, h) {
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
"Statement distribution is erroneously attempting to distribute more \
|
||||
than {} candidate(s) per validator index. Ignoring",
|
||||
@@ -703,7 +703,7 @@ impl ActiveHeadData {
|
||||
CompactStatement::Seconded(h) => {
|
||||
let seconded_so_far = self.seconded_counts.entry(validator_index).or_insert(0);
|
||||
if *seconded_so_far >= VC_THRESHOLD {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?statement,
|
||||
@@ -714,7 +714,7 @@ impl ActiveHeadData {
|
||||
|
||||
self.candidates.insert(h);
|
||||
if let Some(old) = self.statements.insert(comparator.clone(), statement) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
statement = ?old,
|
||||
@@ -724,7 +724,7 @@ impl ActiveHeadData {
|
||||
} else {
|
||||
*seconded_so_far += 1;
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
statement = ?self.statements.last().expect("Just inserted").1,
|
||||
@@ -741,7 +741,7 @@ impl ActiveHeadData {
|
||||
},
|
||||
CompactStatement::Valid(h) => {
|
||||
if !self.candidates.contains(&h) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?statement,
|
||||
@@ -751,7 +751,7 @@ impl ActiveHeadData {
|
||||
}
|
||||
|
||||
if let Some(old) = self.statements.insert(comparator.clone(), statement) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
statement = ?old,
|
||||
@@ -759,7 +759,7 @@ impl ActiveHeadData {
|
||||
);
|
||||
NotedStatement::UsefulButKnown
|
||||
} else {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
statement = ?self.statements.last().expect("Just inserted").1,
|
||||
@@ -795,7 +795,7 @@ impl ActiveHeadData {
|
||||
CompactStatement::Seconded(_) => {
|
||||
let seconded_so_far = self.seconded_counts.get(&validator_index).unwrap_or(&0);
|
||||
if *seconded_so_far >= VC_THRESHOLD {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?statement,
|
||||
@@ -805,7 +805,7 @@ impl ActiveHeadData {
|
||||
}
|
||||
|
||||
if self.statements.contains_key(&comparator) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?statement,
|
||||
@@ -816,7 +816,7 @@ impl ActiveHeadData {
|
||||
},
|
||||
CompactStatement::Valid(h) => {
|
||||
if !self.candidates.contains(&h) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?statement,
|
||||
@@ -826,7 +826,7 @@ impl ActiveHeadData {
|
||||
}
|
||||
|
||||
if self.statements.contains_key(&comparator) {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?validator_index,
|
||||
?statement,
|
||||
@@ -1033,7 +1033,7 @@ async fn circulate_statement<'a>(
|
||||
// Send all these peers the initial statement.
|
||||
if !peers_to_send.is_empty() {
|
||||
let payload = statement_message(relay_parent, stored.statement.clone());
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?peers_to_send,
|
||||
?relay_parent,
|
||||
@@ -1071,7 +1071,7 @@ async fn send_statements_about(
|
||||
peer_data.send(&relay_parent, &fingerprint);
|
||||
let payload = statement_message(relay_parent, statement.statement.clone());
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
?relay_parent,
|
||||
@@ -1106,7 +1106,7 @@ async fn send_statements(
|
||||
peer_data.send(&relay_parent, &fingerprint);
|
||||
let payload = statement_message(relay_parent, statement.statement.clone());
|
||||
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
?relay_parent,
|
||||
@@ -1244,7 +1244,7 @@ async fn launch_request(
|
||||
|
||||
let result = ctx.spawn("large-statement-fetcher", task.boxed());
|
||||
if let Err(err) = result {
|
||||
tracing::error!(target: LOG_TARGET, ?err, "Spawning task failed.");
|
||||
gum::error!(target: LOG_TARGET, ?err, "Spawning task failed.");
|
||||
return None
|
||||
}
|
||||
let available_peers = {
|
||||
@@ -1312,7 +1312,7 @@ async fn handle_incoming_message<'a>(
|
||||
let active_head = match active_heads.get_mut(&relay_parent) {
|
||||
Some(h) => h,
|
||||
None => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
%relay_parent,
|
||||
"our view out-of-sync with active heads; head not found",
|
||||
@@ -1324,13 +1324,7 @@ async fn handle_incoming_message<'a>(
|
||||
|
||||
if let protocol_v1::StatementDistributionMessage::LargeStatement(_) = message {
|
||||
if let Err(rep) = peer_data.receive_large_statement(&relay_parent) {
|
||||
tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
?message,
|
||||
?rep,
|
||||
"Unexpected large statement.",
|
||||
);
|
||||
gum::debug!(target: LOG_TARGET, ?peer, ?message, ?rep, "Unexpected large statement.",);
|
||||
report_peer(ctx, peer, rep).await;
|
||||
return None
|
||||
}
|
||||
@@ -1355,7 +1349,7 @@ async fn handle_incoming_message<'a>(
|
||||
// reputation change flood.
|
||||
let unexpected_count = peer_data.receive_unexpected(&relay_parent);
|
||||
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?relay_parent,
|
||||
?peer,
|
||||
@@ -1406,12 +1400,7 @@ async fn handle_incoming_message<'a>(
|
||||
// check the signature on the statement.
|
||||
match check_statement_signature(&active_head, relay_parent, unchecked_compact) {
|
||||
Err(statement) => {
|
||||
tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
?statement,
|
||||
"Invalid statement signature"
|
||||
);
|
||||
gum::debug!(target: LOG_TARGET, ?peer, ?statement, "Invalid statement signature");
|
||||
report_peer(ctx, peer, COST_INVALID_SIGNATURE).await;
|
||||
return None
|
||||
},
|
||||
@@ -1431,7 +1420,7 @@ async fn handle_incoming_message<'a>(
|
||||
// This fails if the payload doesn't encode correctly.
|
||||
let statement: SignedFullStatement = match checked_compact.convert_to_superpayload(payload) {
|
||||
Err((compact, _)) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?peer,
|
||||
?compact,
|
||||
@@ -1453,7 +1442,7 @@ async fn handle_incoming_message<'a>(
|
||||
unreachable!("checked in `check_can_receive` above; qed");
|
||||
},
|
||||
Ok(true) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer, ?statement, "Statement accepted");
|
||||
gum::trace!(target: LOG_TARGET, ?peer, ?statement, "Statement accepted");
|
||||
// Send the peer all statements concerning the candidate that we have,
|
||||
// since it appears to have just learned about the candidate.
|
||||
send_statements_about(
|
||||
@@ -1544,7 +1533,7 @@ async fn handle_network_update(
|
||||
) {
|
||||
match update {
|
||||
NetworkBridgeEvent::PeerConnected(peer, role, maybe_authority) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer, ?role, "Peer connected");
|
||||
gum::trace!(target: LOG_TARGET, ?peer, ?role, "Peer connected");
|
||||
peers.insert(
|
||||
peer,
|
||||
PeerData {
|
||||
@@ -1560,7 +1549,7 @@ async fn handle_network_update(
|
||||
}
|
||||
},
|
||||
NetworkBridgeEvent::PeerDisconnected(peer) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer, "Peer disconnected");
|
||||
gum::trace!(target: LOG_TARGET, ?peer, "Peer disconnected");
|
||||
if let Some(auth_ids) = peers.remove(&peer).and_then(|p| p.maybe_authority) {
|
||||
auth_ids.into_iter().for_each(|a| {
|
||||
authorities.remove(&a);
|
||||
@@ -1600,7 +1589,7 @@ async fn handle_network_update(
|
||||
.await;
|
||||
},
|
||||
NetworkBridgeEvent::PeerViewChange(peer, view) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peer, ?view, "Peer view change");
|
||||
gum::trace!(target: LOG_TARGET, ?peer, ?view, "Peer view change");
|
||||
match peers.get_mut(&peer) {
|
||||
Some(data) =>
|
||||
update_peer_view_and_maybe_send_unlocked(
|
||||
@@ -1670,7 +1659,7 @@ impl StatementDistributionSubsystem {
|
||||
match result.into_nested()? {
|
||||
Ok(true) => break,
|
||||
Ok(false) => {},
|
||||
Err(jfyi) => tracing::debug!(target: LOG_TARGET, error = ?jfyi),
|
||||
Err(jfyi) => gum::debug!(target: LOG_TARGET, error = ?jfyi),
|
||||
}
|
||||
},
|
||||
MuxedMessage::Requester(result) => {
|
||||
@@ -1820,7 +1809,7 @@ impl StatementDistributionSubsystem {
|
||||
Some(LargeStatementStatus::Fetching(info)) => info,
|
||||
Some(LargeStatementStatus::FetchedOrShared(_)) => {
|
||||
// This task is going to die soon - no need to send it anything.
|
||||
tracing::debug!(target: LOG_TARGET, "Zombie task wanted more peers.");
|
||||
gum::debug!(target: LOG_TARGET, "Zombie task wanted more peers.");
|
||||
return Ok(())
|
||||
},
|
||||
None =>
|
||||
@@ -1867,7 +1856,7 @@ impl StatementDistributionSubsystem {
|
||||
|
||||
for deactivated in deactivated {
|
||||
if active_heads.remove(&deactivated).is_some() {
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?deactivated,
|
||||
"Deactivating leaf",
|
||||
@@ -1878,7 +1867,7 @@ impl StatementDistributionSubsystem {
|
||||
for activated in activated {
|
||||
let relay_parent = activated.hash;
|
||||
let span = PerLeafSpan::new(activated.span, "statement-distribution");
|
||||
tracing::trace!(
|
||||
gum::trace!(
|
||||
target: LOG_TARGET,
|
||||
hash = ?relay_parent,
|
||||
"New active leaf",
|
||||
|
||||
@@ -103,7 +103,7 @@ pub async fn fetch(
|
||||
.feed(RequesterMessage::SendRequest(Requests::StatementFetching(outgoing)))
|
||||
.await
|
||||
{
|
||||
tracing::info!(
|
||||
gum::info!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Sending request failed, node might be shutting down - exiting."
|
||||
@@ -122,7 +122,7 @@ pub async fn fetch(
|
||||
if let Err(err) =
|
||||
sender.feed(RequesterMessage::ReportPeer(peer, COST_WRONG_HASH)).await
|
||||
{
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Sending reputation change failed: This should not happen."
|
||||
@@ -142,7 +142,7 @@ pub async fn fetch(
|
||||
})
|
||||
.await
|
||||
{
|
||||
tracing::warn!(
|
||||
gum::warn!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Sending task response failed: This should not happen."
|
||||
@@ -155,7 +155,7 @@ pub async fn fetch(
|
||||
return
|
||||
},
|
||||
Err(err) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Receiving response failed with error - trying next peer."
|
||||
@@ -174,7 +174,7 @@ pub async fn fetch(
|
||||
// All our peers failed us - try getting new ones before trying again:
|
||||
match try_get_new_peers(relay_parent, candidate_hash, &mut sender, &span).await {
|
||||
Ok(Some(mut peers)) => {
|
||||
tracing::trace!(target: LOG_TARGET, ?peers, "Received new peers.");
|
||||
gum::trace!(target: LOG_TARGET, ?peers, "Received new peers.");
|
||||
// New arrivals will be tried first:
|
||||
new_peers.append(&mut peers);
|
||||
},
|
||||
@@ -205,7 +205,7 @@ async fn try_get_new_peers(
|
||||
.send(RequesterMessage::GetMorePeers { relay_parent, candidate_hash, tx })
|
||||
.await
|
||||
{
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
"Failed sending background task message, subsystem probably moved on."
|
||||
@@ -215,7 +215,7 @@ async fn try_get_new_peers(
|
||||
|
||||
match rx.timeout(RETRY_TIMEOUT).await.transpose() {
|
||||
Err(_) => {
|
||||
tracing::debug!(target: LOG_TARGET, "Failed fetching more peers.");
|
||||
gum::debug!(target: LOG_TARGET, "Failed fetching more peers.");
|
||||
Err(())
|
||||
},
|
||||
Ok(val) => Ok(val),
|
||||
|
||||
@@ -78,11 +78,11 @@ pub async fn respond(
|
||||
let req = match receiver.recv(|| vec![COST_INVALID_REQUEST]).await.into_nested() {
|
||||
Ok(Ok(v)) => v,
|
||||
Err(fatal) => {
|
||||
tracing::debug!(target: LOG_TARGET, error = ?fatal, "Shutting down request responder");
|
||||
gum::debug!(target: LOG_TARGET, error = ?fatal, "Shutting down request responder");
|
||||
return
|
||||
},
|
||||
Ok(Err(jfyi)) => {
|
||||
tracing::debug!(target: LOG_TARGET, error = ?jfyi, "Decoding request failed");
|
||||
gum::debug!(target: LOG_TARGET, error = ?jfyi, "Decoding request failed");
|
||||
continue
|
||||
},
|
||||
};
|
||||
@@ -97,12 +97,12 @@ pub async fn respond(
|
||||
})
|
||||
.await
|
||||
{
|
||||
tracing::debug!(target: LOG_TARGET, ?err, "Shutting down responder");
|
||||
gum::debug!(target: LOG_TARGET, ?err, "Shutting down responder");
|
||||
return
|
||||
}
|
||||
let response = match rx.await {
|
||||
Err(err) => {
|
||||
tracing::debug!(target: LOG_TARGET, ?err, "Requested data not found.");
|
||||
gum::debug!(target: LOG_TARGET, ?err, "Requested data not found.");
|
||||
Err(())
|
||||
},
|
||||
Ok(v) => Ok(StatementFetchingResponse::Statement(v)),
|
||||
@@ -115,7 +115,7 @@ pub async fn respond(
|
||||
};
|
||||
pending_out.push(pending_sent_rx);
|
||||
if let Err(_) = req.send_outgoing_response(response) {
|
||||
tracing::debug!(target: LOG_TARGET, "Sending response failed");
|
||||
gum::debug!(target: LOG_TARGET, "Sending response failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1275,7 +1275,7 @@ fn receiving_large_statement_from_one_sends_to_another_and_to_candidate_backing(
|
||||
),
|
||||
)
|
||||
) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?recipients,
|
||||
"Recipients received"
|
||||
@@ -1613,7 +1613,7 @@ fn share_prioritizes_backing_group() {
|
||||
),
|
||||
)
|
||||
) => {
|
||||
tracing::debug!(
|
||||
gum::debug!(
|
||||
target: LOG_TARGET,
|
||||
?recipients,
|
||||
"Recipients received"
|
||||
|
||||
Reference in New Issue
Block a user