brpc icon indicating copy to clipboard operation
brpc copied to clipboard

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means...

Results 414 brpc issues
Sort by recently updated
recently updated
newest added

如果设置了nosignal模式,某个taskgroup类的实例这时处于waittask状态。 这是突然有外部调用了push_rq给taskgroup类中本地队列_rq添加了一个任务,请问这时是什么机制会将taskgroup类从waittask状态唤醒,还是说会一直阻塞在waittask状态?

### What problem does this PR solve? Issue Number: Problem Summary: rdma block pool runtime ExtendBlockPool has some error: 1. a region may has many buckets, extend a region not...

### What problem does this PR solve? Part: #2904 Problem Summary: - BUILD.bazel 只编译了极少数 brpc 单元测试; - 直接 glob(["brpc_*_unittest.cpp"]) 会把多个含 int main() 的源文件链接进同一可执行文件,引发 duplicate symbol: main,导致其余测试无法构建。 - CMake 已覆盖全部 UT。为了让两套构建结果一致,需要在...

**Describe the bug** 服务端开启鉴权后,如果客户端通过grpc协议鉴权失败,返回体是HTTP1.0格式的,客户端无法解析,导致客户端一直夯死,无法解析出正确的错误码。 **To Reproduce** brpc服务端加入 options.auth=&auth后,直接通过postman的grpc接口访问即可复现 ![Image](https://github.com/user-attachments/assets/c1187541-c99b-4b37-b5d8-1e9e5add7b0e) **Expected behavior** 期望客户端在服务端返回鉴权失败时能正常解析鉴权失败的错误码,而不是一直处于夯死状态直到超时 **Versions** 1.12.0 **Additional context/screenshots**

**brpc-1.13.0 protoc 3.21.12** ### 使用echo_server进行测试 `./echo_server -minloglevel=4` 使用rpc_press进行压测 **1. 单连接模式测试:** ` ./rpc_press -proto="./echo.proto" -method=example.EchoService.Echo -server=192.168.100.4:8000 -input=.'{"message":"hello"} {"message":"world"}' -qps=0 -timeout_ms=3000 -thread_num=512` ![Image](https://github.com/user-attachments/assets/ab909b18-e3dd-4b4e-8337-70b09d683695) **`QPS 45W+`** **2. 连接池模式测试:** `./rpc_press -proto="./echo.proto" -method=example.EchoService.Echo -server=192.168.100.4:8000 -input=.'{"message":"hello"}...

注意到,目前使用的BUILD.bazel文件中有这样一条宏定义 https://github.com/apache/brpc/blob/master/BUILD.bazel#L25 ``` -D__const__=__unused__ ``` 相关背景可以在issue:https://github.com/apache/brpc/issues/1693 与文档:https://github.com/apache/brpc/blob/master/docs/cn/thread_local.md#gcc4%E4%B8%8B%E7%9A%84errno%E9%97%AE%E9%A2%98 中找到介绍。 总结来说就是 > 务必在直接或间接使用bthread的项目的gcc编译选项中添加-D__const__=__unused__,即把__const__定义为一个无副作用的属性,避免gcc4做相关优化。 对于cmake来说,这个可能不好由brpc仓库进行实现。但对bazel来说,我们有办法由brpc仓库进行这个操作。 具体来说,bazel的cc_library提供一个参数defines, 用于给依赖(或者间接依赖)该目标的目标,添加宏定义。具体的,官方文档为: https://bazel.build/reference/be/c-cpp#cc_library 因此,brpc这边是否考虑,给bthread这个cc_library,直接添加这个宏定义呢

enhancement

如下代码,使用json2pb将pb转为json,当遇到oneof时输出json与protobuf不一致 ```c++ #include #include #include "test.pb.h" /* * test.proto * syntax = "proto3"; message Test{ oneof OneOf{ string a = 1; string b = 2; string c = 3; }...

**Is your feature request related to a problem?** 官方文档目前只有cmake和config_brpc.sh的步骤 **Describe the solution you'd like** 建议增加bazel的编译介绍,或者描述通用的编译步骤方便开发者理解。 **Describe alternatives you've considered** 开发者真正的理解之后可以自行编写适合自己的编译流程。 **Additional context/screenshots**

kind/docs

**Describe the bug** 编译rdma提示fatal error: infiniband/verbs.h: No such file or directory **To Reproduce** **Expected behavior** 这种rdma底层的依赖,建议源码clone下来编译还是yum install 安装? **Versions** OS: Compiler: brpc: protobuf: **Additional context/screenshots**

[https://brpc.apache.org/zh/docs/benchmark/](url) 1. 在benchmark中提到的性能基准测试是基于哪个版本测试得到的啊? 2. 这个性能测试是同步模式还是异步模式测得的啊?