Apache bRPC 1.11.0 版本现已发布,包含许多新功能和问题修复。主要更新内容如下:
新功能
- 支持pthread互斥锁死锁检测 (#2692 #2727)
- 支持bzlmod (#2670)
- 支持wireshark解析器解析多个baidu_std RPC (#2710)
- 支持jemalloc profiler和统计数据打印 (#2737)
- 支持RPC Protobuf Message工厂接口 (#2718)
- 支持Arena RPC Protobuf Message工厂类 (#2751)
- 支持自定义backup request策略 (#2734)
- 支持bthread版本的信号量和读写锁 (#2752 #2773)
- 支持批量建立和接受Stream (#2754)
- 多种mutex支持超时功能 (#2760)
Bug修复
- 修复contention profiler采样时申请内存导致malloc死锁的问题 (#2684)
- 修复rdma编译错误问题 (#2707 #2720)
- 修复baidu master内存泄漏问题 (#2717)
- 修复被中断后tcp_connect返回结果有误的问题 (#2664)
- 修复butil::ObjectPoolAllocator内存泄漏问题 (#2725)
- 修复SerializedResponse编译错误问题 (#2722)
- 修复bthread_concurrency_by_tag gflag验证错误的问题 (#2730)
- 修复example/rdma_performance编译错误问题 (#2741)
- 修复mpsc队列入队节点为原子交换 (#2739)
- 修复tls_task_group缺少extern的问题 (#2759)
- 修复使用cmake编译单元测试失败的问题 (#2771)
- 修复使用Stream时出现Socket Check失败的问题 (#2776)
- 修复gdb_bthread_stack.py找不到符号的问题 (#2732)
功能增强
- 添加macos上的openSSL_ROOT_DIR检查 (#2716)
- 新bthread mutex竞争者主动内旋和将竞争失败的旧bthread mutex竞争者排在等待队列最前面 (#2749)
- 将periodic_task.h设置为自包含的头文件 (#2758)
- 支持不可复制的同步对象 (#2766)
- 使用ManualConstructor(AlignedMemory)代替在C++23中已被弃用的std::aligned_storage (#2719)
- 在身份验证失败时向客户端发送未经授权的响应 (#2744)
- 优化keytablelist的实现 (#2768)
- 支持服务器端禁用eoovercrowded检查 (#2774)
- 仅在tag相同时才支持批量唤醒butex (#2778)
- 添加对bthread_setconcurrent_by_tag的检查 (#2784)
- 添加头文件,修复单元测试编译问题 (#2787)
- 将bzlmod中的boost依赖关系切换到bcr (#2789)
其他
- 文档改进
- 官网优化
详情可查看更新说明。