diff options
author | dinmukhammed <dinmukhammed@yandex-team.ru> | 2022-02-11 17:28:39 +0300 |
---|---|---|
committer | dinmukhammed <dinmukhammed@yandex-team.ru> | 2022-02-11 17:28:39 +0300 |
commit | 475665a4cb8b7b9e8bb6cbb84928e61f5171d7d0 (patch) | |
tree | fab4afc08b8d28980a34abd4661299e09c7903f6 | |
parent | 1cda6889d5fd7fa7040379182cf9bed311d8e02e (diff) | |
download | ydb-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.cpp | 13 | ||||
-rw-r--r-- | ydb/library/yql/providers/common/token_accessor/client/token_accessor_client.cpp | 2 |
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) { |