From 42419bec0f0e87365e948f1cb3608293a161a37b Mon Sep 17 00:00:00 2001 From: Andrew Plaza Date: Thu, 26 Nov 2020 15:22:34 +0100 Subject: [PATCH 1/3] change TRACING_SET to static --- primitives/io/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primitives/io/src/lib.rs b/primitives/io/src/lib.rs index 382a0c4b3bd6a..c1e31e2f7c6dd 100644 --- a/primitives/io/src/lib.rs +++ b/primitives/io/src/lib.rs @@ -1093,7 +1093,7 @@ mod tracing_setup { }; use super::{wasm_tracing, Crossing}; - const TRACING_SET : AtomicBool = AtomicBool::new(false); + static TRACING_SET : AtomicBool = AtomicBool::new(false); /// The PassingTracingSubscriber implements `tracing_core::Subscriber` From 8cfb5e68c20042fc8310610dd980efa4fbae311a Mon Sep 17 00:00:00 2001 From: Andrew Plaza Date: Thu, 26 Nov 2020 16:21:08 +0100 Subject: [PATCH 2/3] Update primitives/io/src/lib.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bastian Köcher --- primitives/io/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primitives/io/src/lib.rs b/primitives/io/src/lib.rs index c1e31e2f7c6dd..d812baefb57ed 100644 --- a/primitives/io/src/lib.rs +++ b/primitives/io/src/lib.rs @@ -1093,7 +1093,7 @@ mod tracing_setup { }; use super::{wasm_tracing, Crossing}; - static TRACING_SET : AtomicBool = AtomicBool::new(false); + static TRACING_SET: AtomicBool = AtomicBool::new(false); /// The PassingTracingSubscriber implements `tracing_core::Subscriber` From 1fa18e8978d2014273a04126868fd87b0d4c3b84 Mon Sep 17 00:00:00 2001 From: Andrew Plaza Date: Fri, 27 Nov 2020 18:51:20 +0100 Subject: [PATCH 3/3] modify test with nested spans --- client/executor/runtime-test/src/lib.rs | 11 +++++++++++ client/executor/src/integration_tests/mod.rs | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/client/executor/runtime-test/src/lib.rs b/client/executor/runtime-test/src/lib.rs index f4cef65b629aa..bfba4ef039395 100644 --- a/client/executor/runtime-test/src/lib.rs +++ b/client/executor/runtime-test/src/lib.rs @@ -261,6 +261,17 @@ sp_core::wasm_export_functions! { wasm_tracing::exit(span_id) } + fn test_nested_spans() { + sp_io::init_tracing(); + let span_id = wasm_tracing::enter_span(Default::default()); + { + sp_io::init_tracing(); + let span_id = wasm_tracing::enter_span(Default::default()); + wasm_tracing::exit(span_id); + } + wasm_tracing::exit(span_id); + } + fn returns_mutable_static() -> u64 { unsafe { MUTABLE_STATIC += 1; diff --git a/client/executor/src/integration_tests/mod.rs b/client/executor/src/integration_tests/mod.rs index c8b763a6b1936..d41784f5aa067 100644 --- a/client/executor/src/integration_tests/mod.rs +++ b/client/executor/src/integration_tests/mod.rs @@ -719,6 +719,15 @@ fn wasm_tracing_should_work(wasm_method: WasmExecutionMethod) { assert_eq!(span_datum.target, "default"); assert_eq!(span_datum.name, ""); assert_eq!(values.bool_values.get("wasm").unwrap(), &true); + + call_in_wasm( + "test_nested_spans", + Default::default(), + wasm_method, + &mut ext, + ).unwrap(); + let len = traces.lock().unwrap().len(); + assert_eq!(len, 2); } #[test_case(WasmExecutionMethod::Interpreted)]