You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zipkin.apache.org by GitBox <gi...@apache.org> on 2019/06/12 06:38:27 UTC

[GitHub] [incubator-zipkin] wuchenglong1 opened a new issue #2626: zipkin 使用brave拦截RPC异步请求影响业务代码的问题

wuchenglong1 opened a new issue #2626: zipkin 使用brave拦截RPC异步请求影响业务代码的问题
URL: https://github.com/apache/incubator-zipkin/issues/2626
 
 
   使用brave整合dubbo,使用到了brave-instrumentation-dubbo-rpc.xxx.jar,我们应用在使用dubbo的onreturn异步调用时,发现采集埋点程序的配置导致了业务代码的返回结果,经过排查发现是brave-instrumentation-dubbo-rpc.xxx.jar里面的TracingFilter里面的异步代码导致:
   Future<Object>future=rpcContext.getFuture();
   if(future instanceof FutureAdapter){
   deferFinish=true;
   ((FutureAdapter)future).getFuture().setCallback(new FinishSpanCallback(span));
   }
   
   注释掉上诉代码块可以解决问题,理论上zpkin采集异步调用信息是不建议的,因为可能会出现不同线程调用导致链路信息不完整不准确的问题。但是为什么会影响业务的调用结果返回呢?我看着这几行代码的意思貌似是会把span信息传递给callback,如果callback完成了span就完成了,否则就锁定lock,这会不会阻塞业务线程导致超时???
   
   
   
   
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services