This is an automated email from the ASF dual-hosted git repository. yanglimingcn pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brpc.git
commit f1d04c87cfb883c839afc3ddd0d3ab07cda54940 Merge: b9145686 2587a7f3 Author: Yang,Liming <[email protected]> AuthorDate: Wed Jul 1 15:29:01 2026 +0800 Merge pull request #3359 from hjwsm1989/codex/selective-channel-late-subdone-fix Fix late selective_channel retry after EndRPC src/brpc/controller.cpp | 12 +++++++ src/brpc/controller.h | 3 ++ src/brpc/selective_channel.cpp | 24 +++++++++++-- test/brpc_channel_unittest.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 3 deletions(-) diff --cc src/brpc/selective_channel.cpp index 8dee4225,db844918..287b0a16 --- a/src/brpc/selective_channel.cpp +++ b/src/brpc/selective_channel.cpp @@@ -419,15 -429,12 +429,16 @@@ void Sender::Clear() if (_main_cntl == NULL) { return; } - delete _alloc_resources[1].response; - delete _alloc_resources[1].sub_done; - _alloc_resources[1] = Resource(); + for (int i = 0; i < _nalloc; ++i) { + delete _alloc_resources[i].response; + if (_alloc_resources[i].sub_done != &_sub_done0) { + delete _alloc_resources[i].sub_done; + } + _alloc_resources[i] = Resource(); + } const CallId cid = _main_cntl->call_id(); _main_cntl = NULL; + _lb.reset(NULL); if (_user_done) { _user_done->Run(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
