From eefebc6cfcaa86b5391f9d0cb757944ceca971a9 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Sat, 2 Jan 2021 16:47:27 -0500 Subject: [PATCH] differentiate spans for erasure-coding and storage (#2185) --- polkadot/node/core/backing/src/lib.rs | 42 ++++++++++++++++----------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/polkadot/node/core/backing/src/lib.rs b/polkadot/node/core/backing/src/lib.rs index 463dbaed98..39658e1495 100644 --- a/polkadot/node/core/backing/src/lib.rs +++ b/polkadot/node/core/backing/src/lib.rs @@ -288,7 +288,7 @@ async fn store_available_data( // // This will compute the erasure root internally and compare it to the expected erasure root. // This returns `Err()` iff there is an internal error. Otherwise, it returns either `Ok(Ok(()))` or `Ok(Err(_))`. -#[tracing::instrument(level = "trace", skip(tx_from, pov), fields(subsystem = LOG_TARGET))] +#[tracing::instrument(level = "trace", skip(tx_from, pov, span), fields(subsystem = LOG_TARGET))] async fn make_pov_available( tx_from: &mut mpsc::Sender, validator_index: Option, @@ -297,31 +297,39 @@ async fn make_pov_available( candidate_hash: CandidateHash, validation_data: polkadot_primitives::v1::PersistedValidationData, expected_erasure_root: Hash, + span: Option<&JaegerSpan>, ) -> Result, Error> { let available_data = AvailableData { pov, validation_data, }; - let chunks = erasure_coding::obtain_chunks_v1( - n_validators, - &available_data, - )?; + { + let _span = span.as_ref().map(|s| s.child("erasure-coding")); - let branches = erasure_coding::branches(chunks.as_ref()); - let erasure_root = branches.root(); + let chunks = erasure_coding::obtain_chunks_v1( + n_validators, + &available_data, + )?; - if erasure_root != expected_erasure_root { - return Ok(Err(InvalidErasureRoot)); + let branches = erasure_coding::branches(chunks.as_ref()); + let erasure_root = branches.root(); + + if erasure_root != expected_erasure_root { + return Ok(Err(InvalidErasureRoot)); + } } - store_available_data( - tx_from, - validator_index, - n_validators as u32, - candidate_hash, - available_data, - ).await?; + { + let _span = span.as_ref().map(|s| s.child("store-data")); + store_available_data( + tx_from, + validator_index, + n_validators as u32, + candidate_hash, + available_data, + ).await?; + } Ok(Ok(())) } @@ -423,7 +431,6 @@ async fn validate_and_make_available( ); Err(candidate) } else { - let _span = span.as_ref().map(|s| s.child("make-available")); let erasure_valid = make_pov_available( &mut tx_from, validator_index, @@ -432,6 +439,7 @@ async fn validate_and_make_available( candidate.hash(), validation_data, candidate.descriptor.erasure_root, + span.as_ref(), ).await?; match erasure_valid {