From b5b370fb70f323f2fef5a4bcd133c60a7d09255a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Sun, 2 Jul 2023 00:45:16 +0200 Subject: [PATCH 1/3] sc-tracing: Only print events for whitelisted targets We should only print events for whitelisted targets, otherwise we may run into some stack overflow while printing the event. --- client/tracing/src/lib.rs | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/client/tracing/src/lib.rs b/client/tracing/src/lib.rs index bd5045fed7f11..c499af7e24948 100644 --- a/client/tracing/src/lib.rs +++ b/client/tracing/src/lib.rs @@ -328,24 +328,26 @@ where } fn on_event(&self, event: &Event<'_>, ctx: Context) { - let parent_id = event.parent().cloned().or_else(|| { - if event.is_contextual() { - ctx.lookup_current().map(|span| span.id()) - } else { - None - } - }); - - let mut values = Values::default(); - event.record(&mut values); - let trace_event = TraceEvent { - name: event.metadata().name().to_owned(), - target: event.metadata().target().to_owned(), - level: *event.metadata().level(), - values, - parent_id, - }; - self.dispatch_event(TraceHandlerEvents::Event(trace_event)); + if self.check_target(event.metadata().target(), &event.metadata().level()) { + let parent_id = event.parent().cloned().or_else(|| { + if event.is_contextual() { + ctx.lookup_current().map(|span| span.id()) + } else { + None + } + }); + + let mut values = Values::default(); + event.record(&mut values); + let trace_event = TraceEvent { + name: event.metadata().name().to_owned(), + target: event.metadata().target().to_owned(), + level: *event.metadata().level(), + values, + parent_id, + }; + self.dispatch_event(TraceHandlerEvents::Event(trace_event)); + } } fn on_enter(&self, span: &Id, ctx: Context) { From 8e983f4e6b2119fe0c8e799bafdc5334441ae793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Mon, 3 Jul 2023 09:59:06 +0200 Subject: [PATCH 2/3] Update client/tracing/src/lib.rs Co-authored-by: Koute --- client/tracing/src/lib.rs | 40 ++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/client/tracing/src/lib.rs b/client/tracing/src/lib.rs index c499af7e24948..a1f1da97c8581 100644 --- a/client/tracing/src/lib.rs +++ b/client/tracing/src/lib.rs @@ -328,26 +328,28 @@ where } fn on_event(&self, event: &Event<'_>, ctx: Context) { - if self.check_target(event.metadata().target(), &event.metadata().level()) { - let parent_id = event.parent().cloned().or_else(|| { - if event.is_contextual() { - ctx.lookup_current().map(|span| span.id()) - } else { - None - } - }); - - let mut values = Values::default(); - event.record(&mut values); - let trace_event = TraceEvent { - name: event.metadata().name().to_owned(), - target: event.metadata().target().to_owned(), - level: *event.metadata().level(), - values, - parent_id, - }; - self.dispatch_event(TraceHandlerEvents::Event(trace_event)); + if !self.check_target(event.metadata().target(), &event.metadata().level()) { + return; } + let parent_id = event.parent().cloned().or_else(|| { + if event.is_contextual() { + ctx.lookup_current().map(|span| span.id()) + } else { + None + } + }); + + let mut values = Values::default(); + event.record(&mut values); + let trace_event = TraceEvent { + name: event.metadata().name().to_owned(), + target: event.metadata().target().to_owned(), + level: *event.metadata().level(), + values, + parent_id, + }; + self.dispatch_event(TraceHandlerEvents::Event(trace_event)); + } } fn on_enter(&self, span: &Id, ctx: Context) { From 25fa4a4e9e3c3a756a662382c86f25db8b998b4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Mon, 3 Jul 2023 10:48:25 +0200 Subject: [PATCH 3/3] Fix --- client/tracing/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/tracing/src/lib.rs b/client/tracing/src/lib.rs index a1f1da97c8581..2107943cf6a5a 100644 --- a/client/tracing/src/lib.rs +++ b/client/tracing/src/lib.rs @@ -329,8 +329,9 @@ where fn on_event(&self, event: &Event<'_>, ctx: Context) { if !self.check_target(event.metadata().target(), &event.metadata().level()) { - return; + return } + let parent_id = event.parent().cloned().or_else(|| { if event.is_contextual() { ctx.lookup_current().map(|span| span.id()) @@ -350,7 +351,6 @@ where }; self.dispatch_event(TraceHandlerEvents::Event(trace_event)); } - } fn on_enter(&self, span: &Id, ctx: Context) { if let Some(span) = ctx.span(span) {