From cb24ccc112bc263dd33121931e9df3c04b2f2be8 Mon Sep 17 00:00:00 2001 From: yiguolei <676222867@qq.com> Date: Fri, 4 Oct 2024 23:03:55 +0800 Subject: [PATCH] [bugfix](brpc) Should use status to generate protobuf message, because it will encoding Backend Info (#41515) (#41522) Should use status to generate protobuf message, because it will encoding Backend Info ## Proposed changes Issue Number: close #xxx --- be/src/service/internal_service.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/be/src/service/internal_service.cpp b/be/src/service/internal_service.cpp index 04e616b53b..c54881ed82 100644 --- a/be/src/service/internal_service.cpp +++ b/be/src/service/internal_service.cpp @@ -189,9 +189,11 @@ concept CanCancel = requires(T* response) { response->mutable_status(); }; template void offer_failed(T* response, google::protobuf::Closure* done, const FifoThreadPool& pool) { brpc::ClosureGuard closure_guard(done); - response->mutable_status()->set_status_code(TStatusCode::CANCELLED); - response->mutable_status()->add_error_msgs("fail to offer request to the work pool, pool=" + - pool.get_info()); + // Should use status to generate protobuf message, because it will encoding Backend Info + // into the error message and then we could know which backend's pool is full. + Status st = Status::Error( + "fail to offer request to the work pool, pool={}", pool.get_info()); + st.to_protobuf(response->mutable_status()); LOG(WARNING) << "cancelled due to fail to offer request to the work pool, pool=" << pool.get_info(); }