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]

Reply via email to