From aa05c8b11743e1c085ff782c4766fe08f61dee6d Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Tue, 11 Sep 2018 17:12:43 -0700 Subject: [PATCH] trace_events: avoid flusing uninitialized traces PR-URL: https://github.com/nodejs/node/pull/22812 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Eugene Ostroukhov --- src/tracing/node_trace_buffer.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/tracing/node_trace_buffer.cc b/src/tracing/node_trace_buffer.cc index 70a0ad4b311610..3b7119f6d57f68 100644 --- a/src/tracing/node_trace_buffer.cc +++ b/src/tracing/node_trace_buffer.cc @@ -59,7 +59,13 @@ void InternalTraceBuffer::Flush(bool blocking) { for (size_t i = 0; i < total_chunks_; ++i) { auto& chunk = chunks_[i]; for (size_t j = 0; j < chunk->size(); ++j) { - agent_->AppendTraceEvent(chunk->GetEventAt(j)); + TraceObject* trace_event = chunk->GetEventAt(j); + // Another thread may have added a trace that is yet to be + // initialized. Skip such traces. + // https://github.com/nodejs/node/issues/21038. + if (trace_event->name()) { + agent_->AppendTraceEvent(trace_event); + } } } total_chunks_ = 0;