Releases: apache/brpc
Releases · apache/brpc
Apache bRPC 1.15.0
Bug Fix:
- Fix socket _versioned_ref can not recover && remove _hc_started flag (#3060) by @howzi
- Fix symbol conflict with glog by marking InstallSymbolizeOpenObjectFileCallback as BAIDU_WEAK (#3064) by @wangrufeng and @ruru
- Bugfix: _combiner is not initialized in IntRecorder constructor (#3066) by @chenBright
- Fix infinite loop in flatmap resizing when bucket count is a power of two (#3071) by @gitccl
- Bugfix: MultiDimension::set_max_stats_count should be public (#3074) by @chenBright
- Bugfix: Signal Trace mode may send SIGURG to wrong thread (#3039) by @CodeZHXS
- Fix macos ci (#3080) by @chenBright
- fix: fix bthread_id_unlock failed in aarch64 cpu(#3084) by @zhoukangsheng
- Fix macos ci compatibility with CMake < 3.5 (#3093) by @chenBright
- bthread: fix simd memory align issue (#3092) by @icexin
- Bugfix: WeightedRandomizedLoadBalancer returns 0 without server (#3108) by @chenBright
- bazel: fix with_bthread_tracer config setting (#3111) by @icexin
Enhancement:
- add declare of brpc::rdma::GlobalRdmaInitializeOrDie without define BRPC_WITH_RDMA(#3047) by @yanglimingcn
- Support custom ParkingLot number (#3033) by @chenBright
- Expose the received_us of RPC to users (#3073) by @liupengs
- Refactor: Use static_cast for safer downcasting in brpc::Span (#3075) by @zhangqiongyu and @xulei25
- Add flag for bthread priority queue, the default is false (#3078) by @chenBright
- Add flag for parking lot no signal when no waiter, the default is false (#3079) by @chenBright
- Use int64_t instead of google::protobuf::int64 (#3081) by @chenBright
- rdma rumtime extend block restriction and rdma polling mode process message in new bthread (#3076) by @yanglimingcn
- bazel: add config setting for NO_PTHREAD_MUTEX_HOOK (#3090) by @icexin
- Remove BIO for SSL (#3105) by @jiangrujie
- Add pb2json depth limit (#3099) by @wwbmmm
- Limit the extra options of jemalloc profiler (#3101) by @chenBright
- Add flag for brpc timer buckets count (#3112) by @yanglimingcn
Apache bRPC 1.14.1
Security:
- Fix CVE-2025-54472: Apache bRPC: Redis Parser Remote Denial of Service (#3050) by @wwbmmm
Features:
- add inline redis protocol support (#3024) by @thweetkomputer
Bug Fix:
- fix error checking against IB verbs API (#2265) (#3034) by @live4thee
- Bugfix: SignalTrace mode has memory access problem (#3032) by @CodeZHXS
Enhancement:
- add flags for set worker thread name (#3037) by @yanglimingcn
- replace google::protobuf::int64 by int64_t (#3045) by @gulu-goolu
Others:
Apache bRPC 1.14.0
Features:
- Support generics for MultiDimension APIs (#3026), by @chenBright
- Support rpc checksum (#2967), by @yanglimingcn
- Support RDMA polling mode (#2920), by @yanglimingcn
- Support epoll bthread deal first (#2819), by @zhengJade
Bug Fix:
- Bugfix: runtime extend block pool (#2965), by @yanglimingcn
- Bugfix: bthread_worker_usage could exceed bthread_worker_count (#3009), by @chenBright
- Bugfix: SignalTrace mode has memory and deadlock issues (#3019), by @chenBright
- Bugfix: Butex returned to ObjectPool triggers use-after-poison (#3012), by @chenBright
- Bugfix: LatencyRecorder::expose CHECK fails when save_series flag is false (#3022), by @chenBright
- Fix the bug that the grpc protocol is incompatible with authentication(issue:#3001) (#3002), by @Paragrf
- Bugfix: Socket without health check would be abnormally recycled (#3010), by @chenBright
- Fix: Specifying the global namespace for bind and connect (#3007), by @zhoukangsheng
- Fix race condition that causes TimerThread to hang during shutdown (#2986), by @gitccl
- Fix potential invalid memory access in StringSplitter (#2996), by @gitccl
- Fix bthread task tracer deadlock bug (#2988), by @CodeZHXS
- Fix incorrect seq id setting in thrift message begin (#2984), by @chenBright
- Fix UT compilation errors with GCC 13 due to missing includes (#2979), by @XueSongTap
- Fix invalid url of thrift (#2975), by @chenBright
- Fix libunwind linked by default on x86_64 cpu when building via bazel (#2973), by @tongke6
Enhancement:
- Optimize the fallback code for loading libibverbs (#3008), by @zhangqiongyu
- Add redis allocation size limit (#3035), by @wwbmmm
- Opt log function name (#3017), by @chenBright
- Make unit tests runnable on macOS (#3018), by @gitccl
- Add include guard in rwlock.h (#3005), by @xiongjiwei
- Consistent hashing support server tag (#2994), by @egolearner
- Support macro to disable move (#2989), by @chenBright
- Optimize shared_ptr assignment in DoublyBufferedData (#2981), by @gitccl
Apache bRPC 1.13.0
Feature:
- Support ProtoJson formatted http body (#2921) by @chenBright
- support dynamic update method concurrency (#2923) by @yanglimingcn
- Support various payload of baidu-std: json, proto-json and proto-text (#2946) by @chenBright
- Support AddressSanitizer (#2890) by @chenBright
- keep session info in RedisConnContext (#2902) by @lintanghui
Bugfix:
- Fix memory leak issue #2871 (#2872) by @w-gc
- Fix build on macOS with Apple M1 chip (#2846) by @tongke6
- Fix description of VersionedRefWithId (#2895) by @chenBright
- Fix prometheus metric format (#2825) (#2899) by @ZhengweiZhu
- Fix ParkingLot::signal does not modify _pending_signal (#2916) by @chenBright
- Fix link error if with glog (#2914) by @ivanallen
- Fix double free messages in baidu-std (#2924) by @chenBright
- Fix some unstable UTs (#2928) by @chenBright
- Fix asan switch fiber with error stack info (#2931) by @chenBright
- Fix compiler optimize thread local variable access (#2918) by @zcfh
- Fix class data for protobuf v27+ (#2941) by @wasphin
- use BAIDU_VOLATILE_THREAD_LOCAL to avoid compiler optimization (#2934) by @BiteTheDDDDt
- Fix thread safety of AgentCombiner (#2949) by @chenBright
- Fix batch create stream and SetHostSocket thread safety (#2938) by @jenrryyou
- Fix thread safety of Wrapper (#2952) by @chenBright
- Fix compile errors of json2pb (#2956) by @chenBright
- Fix HttpResponseSenderAsDone Run with NULL messages (#2958) by @chenBright
- Make WeightedRandomizedLoadBalancer traverse server list (#2953) by @chenBright
- Remove incorrect log in RemoveServersInBatch (#2932) by @chenBright
- Make bthread tag defaut right (#2948) by @yanglimingcn
Enhancement:
- Support segment large brpc stream messages automatically (#2889) by @jenrryyou
- Support bthread tracer with bazel (#2905) by @chenBright
- iobuf support reserve_aligned (#2942) by @yanglimingcn
- Support a more safe read function and variadic functions of DoublyBufferedData (#2898) by @chenBright
- Update CI from Ubuntu 20.04 to 22.04 (#2909) by @chenBright
- Reduce futex usage in ParkingLot (#2907) by @JimChengLin
- Record latency of EventDispatcher (#2897) by @chenBright
- Optimize server latency (#2886) by @chenBright
- Optimize zero copy of http body (#2915) by @chenBright
- Nit enhance code (#2911) by @SamYuan1990
- Update ubuntu-20.04 to ubuntu-22.04 in CI (#2909) by @chenBright
Other:
- Enable GitHub Discussions (#2955) by @tisonkun
- Documentation and minor improvements by @chenBright, @tongke6, @cdjingit, @GreateCode, @zhangqiongyu, @beesflower and others
Full Changelog: 1.12.1...1.13.0
Thanks to all contributors for the 1.13.0 version!
Apache bRPC 1.12.1
Feature:
- Support tcp user timeout of client (#2867) by @chenBright
Bugfix:
- Fix gflags namespace (#2877 #2879) by @chenBright
- Fix some compilation warning issues (#2876) by @chenBright
Full Changelog: 1.12.0...1.12.1
Thanks to all contributors for the 1.12.1 version!
Apache bRPC 1.12.0
Feature:
- Support task tracer (#2851) by @chenBright
- Add NonreflectableMessage and support Protobuf v5 (#2782 #2823 #2830) by @wasphin
- Method level option to ignore server eovercrowded (#2820) by @superhail
- Add support for bthread cpu usage (#2852) by @icexin
Bugfix:
- Fix memory leak of ArenaRpcPBMessageFactory (#2798) by @chenBright
- Fix memory leak of keytable list (#2835) by @MJY-HUST
- Fix universal reference (#2862) by @chenBright
- Instruct LeakSanitizer to ignore designated memory leaks of Server and Singleton (#2858) by @chenBright
- Add missing #include (#2800) by @Menci
- Set tags workers unlimitedly (#2801) by @zhengJade
- Fix unused private field warning of FastPthreadMutex (#2839) by @chenBright
- Fix build failure with -std=c++17 option (#2844) by @tongke6
- Remove redundant const of ThreadLocal (#2855) by @chenBright
- Fix universal reference (#2862) by @chenBright
Enhancement:
- Support set_max_stats_count of MultiDimension (#2813) by @chenBright
- Support backtrace log (#2811) by @chenBright
- Support variable arguments for ResourcePool and ObjectPool (#2859) by @chenBright
- Support success limit of ParallelChannel (#2842) by @chenBright
- Support user specific CMAKE_MODULE_PATH (#2806) by @chenBright
- Change the default value of the bthread_tag in class ServerOptions to BTHREAD_TAG_DEFAULT (#2824) by @MJY-HUST
- Small FlatMap optimization with default initialization (#2620) by @chenBright
Other:
Full Changelog: 1.11.0...1.12.0
Thanks to all contributors for the 1.12.0 version!
Apache bRPC 1.11.0
Feature:
- Support pthread mutex deadlock detection (#2692 #2727) by @chenBright
- Support bzlmod (#2670) by @oathdruid
- Support multiple RPCs parsing in wireshark dissector for baidu_std protocol (#2710) by @AnDiXL, @xulei25
- Support jemalloc profiler and stats print (#2737) by @GreateCode
- Support rpc protobuf message factory interface (#2718) by @chenBright
- Support arena rpc pb message factory (#2751) by @chenBright
- Support backup request policy (#2734) by @chenBright
- Support semaphore and rwlock for bthread (#2752 #2773) by @chenBright
- Support batch create and accept stream (#2754) by @jenrryyou
- Support timedlock of fast/hook pthread and bthread::Mutex (#2760) by @chenBright
Bugfix:
- Fix malloc deadlock caused by contention profiler (#2684) by @chenBright
- Fix rdma complie error (#2707 #2720) by @chenBright
- Fix baidu master service leak (#2717) by @chenBright
- Fix tcp connect interrupt (#2664) by @chenBright
- Fix a memleak in butil::ObjectPoolAllocator (#2725) by @live4thee
- Fix compilation errors of SerializedResponse (#2722) by @chenBright
- Fix gflags bthread_concurrency_by_tag validate error #2730 by @MJY-HUST
- Fix example/rdma_performance compilation error (#2741) by @ivanallen
- Fix mpsc queue cur enqueue node to atomic exhange (#2739) by @yanglimingcn
- Fix missing extern of tls_task_group (#2759) by @chenBright
- Fix unittest on cmake (#2771) by @zhooooong and @zhong
- Fix Socket check failed with invalid fd of Stream (#2776) by @chenBright
- Wrap the class name in single quotes (#2732) by @ehds and @dongsheng He
Enhancement:
- Add openSSL_ROOT_DIR check on macos (#2716) by @lqxhub
- Active Spinning and queue old bthread at the head for bthread mutex (#2749) by @chenBright
- Make periodic_task.h a self-contained header file (#2758) by @chuandew
- Support noncopyable sync objects (#2766) by @chenBright
- Use ManualConstructor(AlignedMemory) instead of std::aligned_storage which has been deprecated in C++23 (#2719) by @chenBright
- Send unauthorized response to client when authentication fails (#2744) by @chenBright
- Optimize keytablelist implementation (#2768) by @MJY-HUST
- Add a method option to disable check eovercrowded on server side (#2774) @superhail, @lianxuechao
- Only support batch butex wake with the same tag (#2778) by @yanglimingcn
- Add check for bthread_setconcurrency_by_tag (#2784) by @yanglimingcn
- Add required headers to fix unittest compilation (#2787) by @wasphin
- Switch boost dependency in bzlmod to bcr (#2789) by @oathdruid
Other:
- Doc improvements @chenBright, @GreateCode
Apache bRPC 1.10.0
Feature:
- Support connect on socket create (#2574) by @chenBright
- Support more meta for ServerNode (#2603) by @chenBright
- Support proxy and generic call of baidu protocol (#2629) by @chenBright
- Support thread local object iteration (#2632) by @chenBright
- Support half open state in circuit breaker (#2634) @jiangyt-git
Bugfix:
- Fix IOBuf profiler rate (#2601) by @chenBright
- Fix incorrect core file found in run_tests.sh (#2614) by @chenBright
- Fix FlatMap assign operator bug (#2622) by @chenBright
- Fix GetProgramName not contains absolute path from cmdline (#2644) by @ehds
- Fix invalid headers of multiple cookie and set-cookie (#2577) by @chenBright
- Fix max concurrency of thrift protocol and nshead protocol (#2613) by @chenBright
- fixbug: there is a ',' before 'quantile=' when labels is empty (#2659) @renzhong
- fix h2 rpc_dump mem leak bug (#2661) by @GreateCode
- socket: fix potential double close (#2663) by @BusyJay
- Fix uninitialized local side of Socket (#2672) by @chenBright
- Fix bug: switch between stream_rpc and baidu_std (#2678) by @howarle
- Fix multi FlatMap scale and size (#2669) by @chenBright
Enhancement:
- add check for tag range (#2607) by @yanglimingcn
- bthread set concurrency by tag (#2628) by @yanglimingcn
- Support SCOPE_EXIT macro (#2643) by @chenBright
- Opt performance of async log (#2602) by @chenBright
- Restrict BRPC_VALIDATE_GFLAG to global scope and namespace scope only
(#2625) by @chenBright - Fix comparison warning in http2_rpc_protocol.cpp (#2626) by @imdouyu
- Add virtual destructors to MongoServiceAdaptor and SpanFilter (#2651) by @yozhao
- EventDispatcher supports various IO types (#2560) by @chenBright
- Support FastPthreadMutex contention profiler && expose FastPthreadMutex to user (#2589) by @chenBright
- Reject http request without host (#2600) by @chenBright
- Support remove old rpcz directory before open (#2610) by @yanglimingcn
- Add latency scale factor (#2655) by @superhail
- Add debug log for Socket health check (#2673) by @chenBright
- Use butil::ThreadLocal to store keytable (#2645) by @MJY-HUST
Others:
- Fix ci (#2611) by @chenBright
- Update protobuf version in doc (#2618) by @chenBright
bRPC 1.9.0
Feature:
- Support gc for ListOfABAFreeId (#2479) by @stdpain
- Support timed connect for both bthread and pthread (#2524) by @chenBright
- Support bthread_once and bthread singleton (#2520) by @chenBright
- Support span for new bthread (#2519) by @yanglimingcn
- Support Protobuf 22 (#2546) by @wasphin
- Support compatible with cmake < 3.7 by @wasphin
- Support bthread primitive cross different worker pools (#2551) by @yanglimingcn
- Support on_failed callback for streaming rpc (#2565) by @chenBright
Bugfix:
- Fix gflags bthread_concurrency_by_tag validate failed (#2543) by @yanbinyang
- Fix test/iobuf mismatch deallocation by @BusyJay
- Fix MPSCQueue memory not released with DefaultAllocator (#2553) by @legionxiong
- Fix using butex in return keytable (#2558) by @MJY-HUST
- Fix cancel callback may be called twice (#2557) by @chenBright
- Fix random value of CachedReader at first time (#2556) by @chenBright
- Fix ELEMENTS_PER_BLOCK may be incorrect (#2562) by @shanhe72101
- Fix compile with protobuf 22-25. (#2576) by @ketor
- Fix rpc_channel_connection_count by @yyweii
Enhancement:
- Support ignore eovercrowded for streaming control frame by @chenBright
- Support bthread id for log (#2570) by @chenBright
- Support IOBuf Profiler (#2497) by @chenBright
- Support shutdown write and notify for success write (#2547) by @chenBright
- Add UT of ScopeGuard (#2569) by @chenBright
- Get gcc version by script to support cross-compile (#2567) by @wasphin
- Use sync log for crash fatal log by @chenBright
- Install gdb for linux ci (#2587) by @chenBright
- Do not link abseil interface targets (#2592) by @wasphin
Other:
- Update documents and comments by @omahs, @Divyansh200102, @YinZheng-Sun
bRPC 1.8.0
Feature:
- Support multi bthread worker group with tag (#2358) (#2476) by @yanglimingcn
- Support user callback after sending response before request/response object destruction (#2328) by @yockie
- Support url safe base64 (#2337) by @chenBright
- Support loongarch64 (#2364) by @zhaixiaojuan
- Support compile with boringssl (#2399) by @ehds
- Support user fields of baidu protocol (#2406) by @chenBright
- Support client ALPN (#2251) by @Menci
- Support c++20 coroutine (#2121) by @wwbmmm
- Support grpc health check (#2493) by @jiangyt-git
- Support A Multiple Producer, Single Consumer Queue (#2492) by @chenBright
- Support async logging (#2413) by @chenBright
- Support memory builtin service (#2505) by @chenBright
Bugfix:
- Fix compile on ubuntu18.04 (#2422) by @Simonhancrew
- Fix huge rdma_recv_block_type no effect issue (#2326) by @legionxiong
- Fix h2 protocol abnormal case when SETTINGS_HEADER_TABLE_SIZE set to zero (#2373) by @982945902
- Fix mbvar convert prometheus metrics format issue (#2235) by @rock-git
- Fix bthread_usleep return code when schedule timer failed (#2435) (#2511) by @chenBright
- Fix stream write in background not work (#2440) by @chenBright
- Fix http verbose memory leak (#2429) by @chenBright
- Fix window update threshold (#2418) by @jiangyt-git
- Fix brpc/details/http_message.h compilation in CentOS8 (#2474) by @binarycopycode
- Fix json2pb compile error of examples (#2482) by @chenBright
- Fix scoped_refptr leave ptr_ uninit when move construct by nullptr (#2491) by @lengmoXXL
- Fix LoadBalancerWithNaming memory leak when ssl init failed (#2503) by @ehds
Enhancement:
- Reserve at least one idle socket (#2390) by @chenBright
- rpm: upgrade compiler required by DoublyBufferedData by @wasphin
- Disallow copy and assign of Channel (#2439) by @chenBright
- LALB try left server nodes (#2428) by @FancyJan
- Add wrr lb fallback strategy (#2441) by @jiangyt-git
- Support max width of flame graph image (#2452) by @chenBright
- Remove Content-Length header of GET request (#2458) by @chenBright
- Support 100-continue of server and remove expect header of request (#2499) by @chenBright
- Optimize Content-Length in response to HEAD request (#2469) by @chenBright
- Fix Content-Length and Transfer-Encoding problem (#2518) by @chenBright
- Optimize ssl read log (#2451) by @chenBright
- Optimize ParallelChannel AddChannel Interface (#2467) by @sinomiko
- Support uint32 reloadable flags (#2483) by @chenBright
- tests: use global CMAKE_CPP_FLAGS (#2494) by @OdyX
- Optimize contention: support tcmalloc GetStackTrace and reduce hash calculations (#2488) by @chenBright
- Fix gdb bthread stack when using libc++ (#2516) by @ehds
- Add lldb bthread stack debug script (#2514) by @ehds
- Optimize HttpResponseSender move constructor (#2504) by @chenBright
- Change UserDataDeleter type from function ptr to std::function (#2431) by @coyorkdow
- Move fuzz test in main repo add more fuzz test (#2420) by @0x34d
Other:
- Update documents and comments by @khalid586, @Sea-n, @darionyaphet, @DevanshKyada27, @Wongony, @chenBright, @Divyansh200102, @wwbmmm, @OdyX, @darionyaphet