bigolcy

Results 4 comments of bigolcy

上述问题可以通过使用cas进行链表插入来解决,当然brpc的span不止这一处问题,收到请求包后发起异步调用,svr span会被析构。收到异步调用回包后再发起rpc就可能core。done->Run()提前回包后再发起rpc也有类似的问题。 为了解决这个问题我们对svr span加入了引用计数机制。在合适的位置为当前的svr span引用计数+1,析构时-1。算是比较彻底的解决了这个问题。 在这些问题解决前,不建议在生产环境使用brpc的trace。

我们的代码与主干相距过远了,具体原因可能得看看现在的代码实现是否还有问题。https://github.com/apache/brpc/blob/master/src/brpc/span.cpp#L422 没记错的话,这里析构会把client span一起析构。异步发包后再访问client span就可能core了,跟是否有rpc应该关系不大。

done->Run()提前回包后再发起rpc,这个问题仍然存在的。@fausturs 本质问题是span的生命周期并不清晰。

我们实现了C++的版本,在实际场景(上游C++服务,下游envoy)测试,效果不及预期(1M包以下的场景几乎没有提升),请问可能是哪个方面出了问题?