Closed acelyc111 closed 1 year ago
跟 https://github.com/apache/incubator-brpc/issues/1179 相关联的地方是他们都是从资源池中获取资源,但拿到的资源似乎都有些问题。
这个issue另外一个问题是butex是nullptr,感觉可能是创建的时候就失败了,之前没有check,这个PR加了个check,#1326
@jamesge @acelyc111 辛苦帮忙review下看我的猜测是否合理哈,感谢
We close this issue because it is irreproducible and inactive for a long time. If you can reproduce this issue with the latest version of bRPC, please reopen this issue and tell us how to reproduce.
解决了吗?1.10版本出现概率还挺高的
1325 猜测是ResourcePool返回了一个超过65535的id,原因是看ResourcePool的逻辑是65536个group 65536个Block 256个元素,其容量远大于2^32。而bthread_id_t的计算方式是 resource_id << 32 | version,那么resource_id == 0 和 resource_id = 65536生成的bthread_id_t的值是一样的,这俩id在return_resource的时候会把resource_id == 0的元素return两遍,后续get_resouce就会有问题。 #1179 这个也有可能是这个原因,不过1179看起来不光是TimerTask相同,而且还连在一起了,概率感觉比较低,还没有想明白
这个issue另外一个问题是butex是nullptr,感觉可能是创建的时候就失败了,之前没有check,这个PR加了个check,#1326
@jamesge @acelyc111 辛苦帮忙review下看我的猜测是否合理哈,感谢
不对,我这边也是这个地方崩溃了,但是_ngroup的值是1,id值没有超过int max
Describe the bug (描述bug) 使用brpc库的Doris进程出现如下coredump栈:
还有一个类似的栈:
相关代码: https://github.com/apache/incubator-brpc/blob/a6ccc96aeb92d178b38885dc7ca3c525e5699648/src/bthread/id.cpp#L321-L345 To Reproduce (复现方法) 无明确复现方法,但出现频次还挺高
Expected behavior (期望行为) 正常运行
Versions (各种版本) OS: Compiler: brpc: 0.9.5 protobuf:
Additional context/screenshots (更多上下文/截图)