aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordinmukhammed <dinmukhammed@yandex-team.ru>2022-02-11 17:28:39 +0300
committerdinmukhammed <dinmukhammed@yandex-team.ru>2022-02-11 17:28:39 +0300
commit475665a4cb8b7b9e8bb6cbb84928e61f5171d7d0 (patch)
treefab4afc08b8d28980a34abd4661299e09c7903f6
parent1cda6889d5fd7fa7040379182cf9bed311d8e02e (diff)
downloadydb-475665a4cb8b7b9e8bb6cbb84928e61f5171d7d0.tar.gz
YQ-845 Abort DbId resolving when TokenAccessor threw exception
Abort query when token-accessor throws ref:4814590ad1fdc6b253d847ec3e03979998955945
-rw-r--r--ydb/core/yq/libs/actors/database_resolver.cpp13
-rw-r--r--ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp2
2 files changed, 11 insertions, 4 deletions
diff --git a/ydb/core/yq/libs/actors/database_resolver.cpp b/ydb/core/yq/libs/actors/database_resolver.cpp
index ce7a2c66f4..db30bd7183 100644
--- a/ydb/core/yq/libs/actors/database_resolver.cpp
+++ b/ydb/core/yq/libs/actors/database_resolver.cpp
@@ -101,7 +101,9 @@ private:
if (errorMsg) {
issues.AddIssue(errorMsg);
}
- Send(Sender, new TEvents::TEvEndpointResponse(TEvents::TDbResolverResponse(std::move(DatabaseId2Endpoint), Success, issues)));
+ Send(Sender,
+ new TEvents::TEvEndpointResponse(
+ TEvents::TDbResolverResponse(std::move(DatabaseId2Endpoint), Success, issues)));
PassAway();
}
@@ -297,9 +299,14 @@ private:
requests[httpRequest] = key;
} catch (const std::exception& e) {
- const TString msg = TStringBuilder() << " Error while preparing to resolve databaseId " << databaseId << ", details: " << e.what();
+ const TString msg = TStringBuilder() << " Error while preparing to resolve databaseId: " << databaseId << ", details: " << e.what();
LOG_E(msg);
- Cache.Put(key, endpoint);
+ Cache.Put(key, msg);
+ NYql::TIssues issues;
+ issues.AddIssue(msg);
+ Send(ev->Sender,
+ new TEvents::TEvEndpointResponse(TEvents::TDbResolverResponse{{}, /*success=*/false, issues}));
+ return;
}
}
diff --git a/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp b/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
index 3d65263cb9..0be3eb10e7 100644
--- a/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
+++ b/ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp
@@ -82,7 +82,7 @@ private:
ticket = Ticket;
nextTicketUpdate = NextTicketUpdate;
if (ticket.empty()) {
- ythrow yexception() << "IAM-token not ready yet. " << LastRequestError;
+ throw std::runtime_error(TStringBuilder() << "IAM-token not ready yet. " << LastRequestError);
}
}
if (TInstant::Now() >= nextTicketUpdate) {