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 (描述bug)** 在从 `/brpc_metrics` 采集 metric 的时候, 请求由 bthread 执行, 而此时会为了锁住全局 VarMap 获取一个 pthread mutex, 当有一个用户定义的 metric 中出现了 bthread yield, 则会引起死锁. **To Reproduce (复现方法)** 使用 `PassiveStatus`, 然后在这个 metric...
**Describe the bug (描述bug)** 程序使用brpc client 访问 server端,当访问contention时  会导致程序出core 。gdb查看是这里的问题  **To Reproduce (复现方法)** 只要有下载请求 访问contention必现 **Versions (各种版本)** OS: centos 7.9 gcc:11 Compiler: brpc:v1.0.0
分支:On branch 1.9.0 通过cmake方式构建  CMake Deprecation Warning at CMakeLists.txt:18 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument value...
**Describe the bug (描述bug)** E0121 00:11:10.885643 22582 task_group_inl.h:88] _rq is full, capacity=4096 连接端口无响应,QPS掉0, cpu掉0 **To Reproduce (复现方法)** **Expected behavior (期望行为)** 能恢复 **Versions (各种版本)** OS: linux Compiler: gcc 4.8.5 brpc: 0.9.5...
**Describe the bug (描述bug)** HTTP协议的server下,如果请求返回的数据较大时,数据返回延迟过高(不是rpc方法延迟,方法内无阻塞,延迟经测试很低)。返回数据100mb时,并行50个请求需要等到很久后(45s)同时发出的请求才会陆续收到回报,显著慢于只打一个请求(1.3s), 单个请求返回1GB时耗时10s显著慢于网卡的吞吐 **To Reproduce (复现方法)** http协议的server返回内容如下,value为大小为100MB或1GB的字符串 ``` std::string value(1024*1024*100, 'a'); cntl->http_response().set_status_code(200); cntl->http_response().set_content_type("text/plain"); cntl->response_attachment().append(value.c_str(), value.length()); ``` 打http请求 **Expected behavior (期望行为)** 当并发50个http请求,返回value为100MB时,50个请求在发出请求45秒后统一陆续返回。如果只有一个请求,返回value 100MB只需要1.3s。 一次请求,如果返回value为1GB,leave method耗时要10多s(不考虑rpc方法内的时间),请求端很久收到返回,延迟过高。 **Versions (各种版本)** OS:...
### 背景描述 我们在线特征服务通过redis协议,请求一个同机部署的data_mesh服务。该data_mesh服务使用brpc搭建,redis协议。data_mesh收到同机的特征服务的请求后,进行协议转换然后请求远端存储。特征服务和 data_mesh 在同一个 POD,通过 k8s 进行部署。k8s 对 data_mesh 所在的 docker 进行了绑核,绑定到了 1 个 CPU 核心上。 绑核是通过 k8s 的 资源限制 request/limit 来做的,而非 set_cpu_affinitiy 特征服务请求 data_mesh 走的是 127.0.0.1, 不经过网卡 ###...
**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** mbvar达到上限 **Describe the solution you'd like (描述你期望的解决方法)** 达到bvar_max_dump_multi_dimension_metric_number后淘汰旧bvar **Describe alternatives you've considered (描述你想到的折衷方案)** **Additional context/screenshots (更多上下文/截图)**
* 项目中依赖brpc作为第三方库时出现的报错问题: brpc中的mutex.cpp覆盖了pthread_mutex_lock的实现,疑似导致tsan识别不了bthread内部实现的pthread_mutex_lock,导致出现了告警,请问有办法解决这个warning吗?一个简单的复现方式 ```cpp #include #include #include namespace my::test { class TsanCheckTest : public ::testing::Test {}; int counter; std::mutex mutex_std; pthread_mutex_t mu; const int kIncrementsPerThread = 100; void* Locker(void*) {...
客户端请求服务端的连接超时时间已改到1秒,还是存在大量的E110错误,错误率基本到达100%,然后触发熔断。 更新了最新的brpc版本还是存在这个问题
**Describe the bug (描述bug)** 应用场景可以简化为client发起rpc请求,server收到请求后取回数据,并通过response attachment返回,追踪日志看: 1. fuse->rpc->worker 完成 2. worker收到响应->take data-> append to attachment完成 3. fuse侧hang住,直到报错 ``` E1031 07:32:53.252275 44 input_messenger.cpp:123] Fail to parse response from 33.51.173.89:19893 by baidu_std...