diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/integration/TraceChannelInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/integration/TraceChannelInterceptor.java index 9ec311f4a..a021f2b2e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/integration/TraceChannelInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/integration/TraceChannelInterceptor.java @@ -45,7 +45,8 @@ public class TraceChannelInterceptor extends ChannelInterceptorAdapter { @Override public void postSend(Message message, MessageChannel channel, boolean sent) { Trace trace = this.traceHolder.get(); - this.traceManager.close(trace); + // Double close to clean up the parent (remote span as well) + this.traceManager.close(this.traceManager.close(trace)); this.traceHolder.remove(); }