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

### What problem does this PR solve? Issue Number: Problem Summary: 1. Multi模式下,插入数据发生hash冲突的时候,size没有加一。另一方面,插入数据不能自动扩容。 2. m1 = m2,m1扩容后m1._nbucket不等于m2._nbucket的时候,m1的_buckets上除了插入数据的位置,其他位置没有set_invalid,后续使用会出现内存问题。 3. 扩容时,_buckets和_thumbnail都是先释放再申请新的内存。如果申请失败了,FlatMap就完全不可用了。 ### What is changed and the side effects? Changed: 1. size++。另外,当FlatMap负载超过阈值,则遍历Bucket链表,当存在不同的key的时候,则扩容。否则,不扩容直接插入。因为key一样,扩容后这些数据还是在同一个链表上。...

### What problem does this PR solve? Issue Number: Problem Summary: tcp_connect被中断之后,返回结果是有问题的: 1. `bthread_timed_connect / bthread_connect`:`butex_wait`返回0,errno等于`EWOULDBLOCK`或者`EINTR`,最后tcp_connect返回一个未连接成功的socket fd。 2. `pthread_timed_connect `:返回-1,errno等于`EINTR`。 ### What is changed and the side effects? Changed: 当errno等于`EWOULDBLOCK`或者`EINTR`,`pthread_fd_wait...

**Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)** It's a common practice to switch the backend server by changing DNS record. However, bRPC only resolve the name once when...

control 调用 signal_task 的时机是创建新任务的时候,通知阻塞的线程来任务了,但是如果实际上没有阻塞的线程,都在工作,是不是就浪费了这次通知呢,那么越繁忙的状态,调用浪费的就越多,进而影响性能呢。

**Describe the bug (描述bug)** 服务端的一次宕机后,客户端就一直因为检查检查失败导致rpc失败,报错 `[E112]Fail to select server from xxx`。在出问题的机器上可以看到连接处于CLOSE_WAIT状态。 **Versions (各种版本)** OS: ubuntu 20.04 Compiler: clang-8 brpc: 1.8.0 protobuf: 3.15.8 **Additional context/screenshots (更多上下文/截图)**

### What problem does this PR solve? Issue Number: #2635 Problem Summary: 当brpc server 下处理的应用执行时间较短(bthread生命周期短),且使用了bthread_local变量时,由于keytable 由bthread_keytable_pool_t中的一个全局链表维护,borrow_keytable、return_keytable时内部加互斥锁,导致锁成为瓶颈。 ![image](https://github.com/apache/brpc/assets/52315061/7a2122c9-f373-42af-badb-da4d9f834dac) 基于此,重新设计了bthread_keytable_pool_t: 新的bthread_keytable_pool_t结构体中,使用butil::ThreadLocal* list 保存TLS的KeyTable list。同时保留原有的free_keytables,不改变reserved_thread_local_data的语义,调用bthread_keytable_pool_reserve会在全局链表中预分配keytable.原有的互斥锁改为读写锁。 * borrow_keytable时优先从本地TLS链表中查找是否有可用的KeyTable,如果没有,且free_keytables不为NULL,再去从全局链表中加写锁获取keytable;如果都没有可用table,则返回NULL。 * return_keytable时只会将keytable插入TLS的KeyTable list中,由于是TLS变量,只有当bthread_keytable_pool_destroy才会产生竞争,所以只需要加写锁。 * bthread_keytable_pool_destroy时加写锁,首先delete butil::ThreadLocal*...

**Describe the bug (描述bug)** mbvar 的 prometheus 的上报格式如下: service_latency{valid="false"} 0 service_latency{valid="false",quantile="80"} 0 service_latency{valid="false",quantile="90"} 0 service_latency{valid="false",quantile="99"} 0 service_latency{valid="false",quantile="999"} 0 service_latency{valid="false",quantile="9999"} 0 service_max_latency{valid="false"} 0 service_qps{valid="false"} 0 service_count{valid="false"} 1 此时没办法通过:avg(service_latency{valid="false"}) 来获取平均耗时,因为 avg 会把所有...

bug

目前公司想用brpc, starlight做c++, java的通信, 需要接入第三方分布式链路追踪组件 目前选型是美团的cat 想请教下 starlight, brpc该如何优雅的设置这三个变量 ps: 求一个最新的群二维码 请教一些关于brpc starlight的问题

**Describe the bug (描述bug)** 服务使用了brpc库,使用容器绑定cpu部署(numa感知)。服务启动后会报Program terminated with signal 11, Segmentation fault.。 **To Reproduce (复现方法)** 容器绑定cpu部署(numa感知),必现。 **Expected behavior (期望行为)** 容器绑定cpu部署(numa感知)服务正常运行。 **Versions (各种版本)** OS: 龙蜥os 7.9 Compiler: brpc: 1.2 protobuf: **Additional context/screenshots...

![image](https://github.com/apache/brpc/assets/17529657/e1f9adce-8015-4c7d-8962-9b72a0ede47a)