From 9fc0f37ef787e1ecb5cdab33a1ab47af17e5974b Mon Sep 17 00:00:00 2001 From: Tao He Date: Tue, 14 Mar 2023 20:37:34 +0800 Subject: [PATCH] Fixes a bug in lease action when grpc timeout is set (#204) Signed-off-by: Tao He --- src/v3/AsyncLeaseAction.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/v3/AsyncLeaseAction.cpp b/src/v3/AsyncLeaseAction.cpp index 76f51e6..95e7943 100644 --- a/src/v3/AsyncLeaseAction.cpp +++ b/src/v3/AsyncLeaseAction.cpp @@ -146,14 +146,14 @@ etcd::Response etcdv3::AsyncLeaseKeepAliveAction::Refresh() break; } case CompletionQueue::NextStatus::GOT_EVENT: { - if (!ok || got_tag != (void *)etcdv3::KEEPALIVE_READ) { - return etcd::Response(grpc::StatusCode::ABORTED, "Failed to create a lease keep-alive connection: read not ok or invalid tag"); + if (ok && got_tag == (void *)etcdv3::KEEPALIVE_READ) { + return etcd::Response(ParseResponse(), etcd::detail::duration_till_now(start_timepoint)); } break; } } this->CancelKeepAlive(); - return etcd::Response(ParseResponse(), etcd::detail::duration_till_now(start_timepoint)); + return etcd::Response(grpc::StatusCode::ABORTED, "Failed to create a lease keep-alive connection: read not ok or invalid tag"); } else { stream->Write(leasekeepalive_request, (void *)etcdv3::KEEPALIVE_WRITE); // wait write finish @@ -165,7 +165,7 @@ etcd::Response etcdv3::AsyncLeaseKeepAliveAction::Refresh() } } this->CancelKeepAlive(); - return etcd::Response(grpc::StatusCode::ABORTED, "Failed to create a lease keep-alive connection"); + return etcd::Response(grpc::StatusCode::ABORTED, "Failed to create a lease keep-alive connection: read not ok or invalid tag"); } }