Fixes txn delete response to keep backwards compatibility

Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
This commit is contained in:
Tao He 2023-07-17 10:30:15 +08:00
parent 2c0d824ebe
commit 246be6723f
1 changed files with 10 additions and 4 deletions

View File

@ -212,15 +212,21 @@ void etcdv3::AsyncTxnResponse::ParseResponse(TxnResponse& reply) {
AsyncDeleteResponse response; AsyncDeleteResponse response;
response.ParseResponse(*(resp.mutable_response_delete_range())); response.ParseResponse(*(resp.mutable_response_delete_range()));
if (error_code == 0) { // Ignore "key not found" error for delete in txn, keep backwards
// compatibility.
if (response.get_error_code() != 0 &&
response.get_error_code() != etcdv3::ERROR_KEY_NOT_FOUND) {
error_code = response.get_error_code(); error_code = response.get_error_code();
} }
if (!response.get_error_message().empty()) { if (!response.get_error_message().empty()) {
if (response.get_error_code() != 0 &&
response.get_error_code() != etcdv3::ERROR_KEY_NOT_FOUND) {
if (!error_message.empty()) { if (!error_message.empty()) {
error_message += "\n"; error_message += "\n";
} }
error_message += response.get_error_message(); error_message += response.get_error_message();
} }
}
for (auto const& value : response.get_values()) { for (auto const& value : response.get_values()) {
values.emplace_back(value); values.emplace_back(value);
} }