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

**Describe the bug (描述bug)** ``` ➜ incubator-brpc git:(master) bazel version Build label: 4.2.1 Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar Build time: Mon Aug 30 15:17:47 2021 (1630336667) Build timestamp: 1630336667 Build timestamp as...

**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** no **Describe the solution you'd like (描述你期望的解决方法)** xmake is a chinese build system, which I think is really convinient. **Describe alternatives...

feature

**Describe the bug (描述bug)** ### 问题1 使用了bthread local会以一定概率出现coredump,并且core的栈不固定,但大多在bthread::TaskGroup::sched_to的 errno = saved_errno;,分析后发现是由于注册的bthread local析构函数调用了bthread_mutex_lock会引发bthread local析构的时候出发bthread切换导致的,如下 ![image](https://user-images.githubusercontent.com/6293650/172087148-8ed71dee-3ae5-4004-80e6-2e0af9df2484.png) 1. 假设bthread1在pthread1上调用return_keytable最终会调用用户注册的bthread local析构函数,如果这个析构函数调用了bthread_mutex_lock等会导致bthread切换的函数则会使得执行return_keytable之后bthread1切换到另一个线程pthread2上 2. 由于g还是用的pthread1上的thread local tls_task_group,在pthread2调用g->set_remained(TaskGroup::_release_last_context, m);会使得pthread1提前将bthread1的stack释放掉,如果此时另一个bthread2申请到了这个stack则会导致bthread1和bthread2共用了同一个stack,会导致互相踩栈引发coredump ### 问题1修复 ![image](https://user-images.githubusercontent.com/6293650/172087227-44073939-a118-4f1b-a93d-fba4735ef28a.png) 可以移动g = tls_task_group到bthread local析构函数之后的位置修复 ###...

**Describe the bug (描述bug)** 无法在Ubuntu 21.04 ARM64环境下编译通过 **To Reproduce (复现方法)** >sh config_brpc.sh --headers=/usr/include --libs=/usr/lib --cxx=clang++ --cc=clang >make ./src/butil/time.h:223:11: error: invalid output constraint '=a' in asm : "=a" (lo), "=d" (hi)...

brpc是否支持泛化调用,后续是否有相关计划?

这算是 https://github.com/brpc/brpc/issues/476 问题的延续吧,还是选择逻辑数据库,底层连接断开了重连就丢失了之前选择的逻辑数据库,我需要重连之后选择之前连接的逻辑数据库,有没有合适的方式实现?

enhancement

bprc现在无法兼容新版本的protobuf。protobuf不友好的引入了纯虚函数 ``` #google/protobuf/message.h Message* New(Arena* arena) const override = 0; ``` brpc是否有支持这个feature的计划?

想要把发送到某一个ip的不同端口的一些频繁发送的response合并在一起延时一定时间合并成一个response发送。 请教一下,closure->Run()如何延时保持并且合并到一个调用中呢?

**Describe the bug (描述bug)** brpc server 异步响应模式在往response中写消息字段时,通过前后取时间戳发现,response写pb消息偶现耗时4-5ms,更长时甚至20ms+ response proto格式: { optional uint64 id = 1; optional int32 stat = 2; optional uint32 cxxdiali = 3; repeated uint32 acount = 4;...

**Describe the bug (描述bug)** brpc在ProcessMongoRequest函数中出现coredump **To Reproduce (复现方法)** 暂时没有复现方法 **Expected behavior (期望行为)** - **Versions (各种版本)** OS: Compiler: brpc: 0.9.7 protobuf: **Additional context/screenshots (更多上下文/截图)**