@Override
    protected void doInAfterTrace(SpanEventRecorder recorder, Object target, Object[] args, Object result, Throwable throwable) {
        final RpcInvocation invocation = (RpcInvocation) args[0];
        recorder.recordApi(methodDescriptor);
        recorder.recordAttribute(DubboConstants.DUBBO_ARGS_ANNOTATION_KEY, invocation.getArguments());

        if (throwable == null) {
            recorder.recordAttribute(DubboConstants.DUBBO_RESULT_ANNOTATION_KEY, result);
        } else {
            recorder.recordException(throwable);
        }
    }
clear {@link com.alibaba.dubbo.rpc.RpcContext#getAttachments()} trace header.
you should to know,since dubbo 2.6.2 version.
{@link com.alibaba.dubbo.rpc.protocol.AbstractInvoker#invoke(com.alibaba.dubbo.rpc.Invocation)}
will force put {@link com.alibaba.dubbo.rpc.RpcContext#getAttachments()} to current Invocation
replace origin invocation.addAttachmentsIfAbsent(context) method;
to imagine if application(B) methodB called by application(A), application(B) is dubbo provider, methodB call next dubbo application(C).
when application(C) received trace header is overwrite by application(B) received trace header.

@param rpcContext
agent-module/plugins/dubbo/src/main/java/com/navercorp/pinpoint/plugin/dubbo/interceptor/DubboProviderInterceptor.java