brpc
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...
**Describe the bug** **To Reproduce** **Expected behavior** **Versions** OS: Compiler: brpc: protobuf: **Additional context/screenshots**
### What problem does this PR solve? Issue Number: resolve #3133 Problem Summary: when Controller response_will_be_read_progressively() it needs background bthread monitor handler to solve progressive reader idle timeout,when hit the...
**Describe the bug** brpc客户端多并发下卡在callmethod函数,不会报错也不返回结果(一直卡死)我这里设置的是同步接口,服务端也收不到这十个请求,下面是gdb 堆栈信息: #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007f1baf0261fe in bthread::futex_wait_private (timeout=0x0, expected=0, addr1=0x7f1b50ff2140) at ./src/bthread/sys_futex.h:40 #2 bthread::wait_pthread (pw=..., ptimeout=ptimeout@entry=0x0) at src/bthread/butex.cpp:142 #3 0x00007f1baf026950 in bthread::butex_wait_from_pthread (abstime=0x0,...
**Is your feature request related to a problem?** N/A **Describe the solution you'd like** 希望 bthread_concurrency 可以支持减少 concurrency **Describe alternatives you've considered** 我们使用 Bthread 实现了协程池,同时我们使用 Bthread Tag Group 来实现不同协程池之间底层 Worker...
**Is your feature request related to a problem?** **Describe the solution you'd like** 我的机器上有多个ip地址(多个网卡)我希望控制brpc的channel发送rpc请求的时候,只通过指定的ip进行发送,目前看channelOptions里面并没有提供这个选项 这个功能可以被支持吗 **Describe alternatives you've considered** **Additional context/screenshots**
**Describe the bug** 此错误代表:滑动窗口表示可发送,但RDMA的SQ(Send Queue)没有可用的空间发送请求; 滑动窗口代表发送方可继续发送的能力;当前,滑动窗口的更新时机为:poll到带有imm(也就是带有acks)的recv cqe,并且进行对应的处理时; RDMA的SQ是一个环形buffer,其上存放发送但未完成的请求,SQ的指针更新时机为 poll 到 send cqe时; 这里我们可以发现:SQ和滑动窗口的更新时机不一致; 按照正常逻辑来讲,如果处理到带有imm的recv cqe,那么代表此前发送方所发出的RDMA Send已经完成,在recv cqe之前应该先生成send cqe; 如下图示意: 这是brpc期望的一个逻辑,在更新滑动窗口值前,先更新了SQ; 但遇到该问题时,说明情况是这样的: 发送方调用大量RDMA Send操作,占用完SQ; 接着发送方poll到带有imm的recv cqe(并且此时一定没有其他send cqe,如果有的话,按照brpc一次poll 32个cqe,也会触发SQ指针更新),进入处理逻辑更新滑动窗口值; 更新窗口值后,某个线程发现窗口值非0,尝试发送,但SQ没有可用空间存放请求了,于是报错; 为什么在带有imm的recv cqe之前没有send...
**Describe the bug** 出现问题的场景:brpc服务端下电一个节点,brpc客户端并没有重新选择链接,持续上报EPOLLOUT错误,连接超时。 待brpc服务端重新上电后,客户端连接恢复。 **To Reproduce** 目前只遇到过一次 **Expected behavior** 期望brpc重新发起socket连接,并且连接成功,而不是一直等待原节点。 **Versions** OS:ubuntu Compiler:g++ brpc:1.9 protobuf: **Additional context/screenshots**
**Is your feature request related to a problem?** 在分布式系统中,bRPC 的 RDMA 实现使用每个 QP 独立 RQ 的模式,导致内存消耗随连接数线性增长。例如,应用的服务节点同时触发 RDMA 内存池扩容时,有可能因为内存不足而扩容失败。 **Describe the solution you'd like** 在 bRPC 中添加对 RDMA SRQ 模式的支持。通过全局共享 RQ,让多个...
**Describe the bug** 我目前使用了 brpc 1.14.1 release 版本。在调试一个线上程序时,我尝试使用 gdb_bthread_stack.py 用来查看运行时堆栈,但是我遇到了如下错误: Python Exception There is no member or method named _agents.: Error occurred in Python command: There is no member or...