From c8187ccd416c1e9da84f06e2cc7c939c54d84380 Mon Sep 17 00:00:00 2001 From: mrproliu <741550557@qq.com> Date: Tue, 17 Mar 2020 12:39:58 +0800 Subject: [PATCH] Fix profile trace not match when change the entry operationId/Name (#4528) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix profile trace not match when change the entry operationId/Name * Update TracingContext.java Co-authored-by: Mrproliu Co-authored-by: 吴晟 Wu Sheng --- .../skywalking/apm/agent/core/context/TracingContext.java | 5 +++++ .../apm/agent/core/context/trace/AbstractTracingSpan.java | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/TracingContext.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/TracingContext.java index 19538ee4d3..d73998a4a8 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/TracingContext.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/TracingContext.java @@ -353,6 +353,11 @@ public class TracingContext implements AbstractTracerContext { final AbstractSpan parentSpan = peek(); final int parentSpanId = parentSpan == null ? -1 : parentSpan.getSpanId(); if (parentSpan != null && parentSpan.isEntry()) { + /** + * Only add the profiling recheck on creating entry span, + * as the operation name could be overrided. + */ + profilingRecheck(parentSpan, operationName); entrySpan = (AbstractTracingSpan) DictionaryManager.findEndpointSection() .findOnly(segment.getServiceId(), operationName) .doInCondition( diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java index d3f2591d63..fb170abd09 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/trace/AbstractTracingSpan.java @@ -212,9 +212,6 @@ public abstract class AbstractTracingSpan implements AbstractSpan { public AbstractTracingSpan setOperationName(String operationName) { this.operationName = operationName; this.operationId = DictionaryUtil.nullValue(); - - // recheck profiling status - owner.profilingRecheck(this, operationName); return this; } -- GitLab