diff options
author | hor911 <hor911@ydb.tech> | 2022-09-16 21:54:57 +0300 |
---|---|---|
committer | hor911 <hor911@ydb.tech> | 2022-09-16 21:54:57 +0300 |
commit | 1474d6ec81020fbf45ab0ac679448deb57e9678f (patch) | |
tree | ddf83c19fe8f0f5f9f143b74d281e96f12f98676 | |
parent | 537a6ece545495ed4cfa87840624b35964bef3d9 (diff) | |
download | ydb-1474d6ec81020fbf45ab0ac679448deb57e9678f.tar.gz |
Allocation error detalization
7 files changed, 12 insertions, 11 deletions
diff --git a/ydb/core/yq/libs/actors/nodes_manager.cpp b/ydb/core/yq/libs/actors/nodes_manager.cpp index 1ac1807b332..746934c5dee 100644 --- a/ydb/core/yq/libs/actors/nodes_manager.cpp +++ b/ydb/core/yq/libs/actors/nodes_manager.cpp @@ -89,7 +89,7 @@ private: if (count == 0) { auto& error = *req->Record.MutableError(); - error.SetErrorCode(NYql::NDqProto::EMISMATCH); + error.SetStatusCode(NYql::NDqProto::StatusIds::BAD_REQUEST); error.SetMessage("Incorrect request - 0 nodes requested"); } else { auto resourceId = rec.GetResourceId(); @@ -140,7 +140,7 @@ private: } else { placementFailure = true; auto& error = *req->Record.MutableError(); - error.SetErrorCode(NYql::NDqProto::EMISMATCH); + error.SetStatusCode(NYql::NDqProto::StatusIds::CLUSTER_OVERLOADED); error.SetMessage("Not enough free memory in the cluster"); break; } diff --git a/ydb/library/yql/providers/dq/actors/executer_actor.cpp b/ydb/library/yql/providers/dq/actors/executer_actor.cpp index d22597522dd..b9f3a15dd0f 100644 --- a/ydb/library/yql/providers/dq/actors/executer_actor.cpp +++ b/ydb/library/yql/providers/dq/actors/executer_actor.cpp @@ -329,9 +329,9 @@ private: case TAllocateWorkersResponse::kError: { YQL_CLOG(ERROR, ProviderDq) << "Error on allocate workers " << ev->Get()->Record.GetError().GetMessage() << ":" - << static_cast<int>(ev->Get()->Record.GetError().GetErrorCode()); + << NYql::NDqProto::StatusIds_StatusCode_Name(ev->Get()->Record.GetError().GetStatusCode()); Issues.AddIssue(TIssue(ev->Get()->Record.GetError().GetMessage()).SetCode(TIssuesIds::DQ_GATEWAY_NEED_FALLBACK_ERROR, TSeverityIds::S_ERROR)); - Finish(NYql::NDqProto::StatusIds::CLUSTER_OVERLOADED); + Finish(ev->Get()->Record.GetError().GetStatusCode()); return; } case TAllocateWorkersResponse::kNodes: diff --git a/ydb/library/yql/providers/dq/actors/resource_allocator.cpp b/ydb/library/yql/providers/dq/actors/resource_allocator.cpp index 8087a4d66d7..227e67afad0 100644 --- a/ydb/library/yql/providers/dq/actors/resource_allocator.cpp +++ b/ydb/library/yql/providers/dq/actors/resource_allocator.cpp @@ -294,7 +294,7 @@ private: } TString message = "Disconnected from worker: `" + workerInfo + "', reason: " + reason; YQL_CLOG(ERROR, ProviderDq) << message; - auto response = MakeHolder<TEvAllocateWorkersResponse>(message); + auto response = MakeHolder<TEvAllocateWorkersResponse>(message, NYql::NDqProto::StatusIds::UNAVAILABLE); QueryStat.FlushCounters(response->Record); Send(SenderId, response.Release()); } diff --git a/ydb/library/yql/providers/dq/api/protos/dqs.proto b/ydb/library/yql/providers/dq/api/protos/dqs.proto index e2a8199c9b8..e657c03db54 100644 --- a/ydb/library/yql/providers/dq/api/protos/dqs.proto +++ b/ydb/library/yql/providers/dq/api/protos/dqs.proto @@ -55,7 +55,8 @@ enum EErrorCode { message TDqError { string Message = 1; - EErrorCode ErrorCode = 2; + EErrorCode DeprecatedErrorCode = 2; // deprecated + NYql.NDqProto.StatusIds.StatusCode StatusCode = 3; } message TAllocateWorkersResponse { diff --git a/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp b/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp index 9044dc47e30..cfd1d331c61 100644 --- a/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp +++ b/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp @@ -23,9 +23,9 @@ namespace NYql::NDqs { Record.MutableError()->SetMessage("Unknown error"); } - TEvAllocateWorkersResponse::TEvAllocateWorkersResponse(const TString& error, NYql::NDqProto::EErrorCode code) { + TEvAllocateWorkersResponse::TEvAllocateWorkersResponse(const TString& error, NYql::NDqProto::StatusIds::StatusCode statusCode) { Record.MutableError()->SetMessage(error); - Record.MutableError()->SetErrorCode(code); + Record.MutableError()->SetStatusCode(statusCode); } TEvAllocateWorkersResponse::TEvAllocateWorkersResponse(ui64 resourceId, const TVector<NActors::TActorId>& ids) { diff --git a/ydb/library/yql/providers/dq/worker_manager/interface/events.h b/ydb/library/yql/providers/dq/worker_manager/interface/events.h index a2d0c9f5409..cec34e518c9 100644 --- a/ydb/library/yql/providers/dq/worker_manager/interface/events.h +++ b/ydb/library/yql/providers/dq/worker_manager/interface/events.h @@ -31,7 +31,7 @@ using TDqResManEvents = NDq::TBaseDqResManEvents<NActors::TEvents::EEventSpace:: : NActors::TEventPB<TEvAllocateWorkersResponse, NYql::NDqProto::TAllocateWorkersResponse, TDqResManEvents::ES_ALLOCATE_WORKERS_RESPONSE> { TEvAllocateWorkersResponse(); - explicit TEvAllocateWorkersResponse(const TString& error, NYql::NDqProto::EErrorCode code = NYql::NDqProto::EUNKNOWN); + explicit TEvAllocateWorkersResponse(const TString& error, NYql::NDqProto::StatusIds::StatusCode statusCode); explicit TEvAllocateWorkersResponse(ui64 resourceId, const TVector<NActors::TActorId>& ids); explicit TEvAllocateWorkersResponse(ui64 resourceId, const TVector<TWorkerInfo::TPtr>& workerInfos); explicit TEvAllocateWorkersResponse(ui64 resourceId, const TVector<ui32>& nodes); diff --git a/ydb/library/yql/providers/dq/worker_manager/local_worker_manager.cpp b/ydb/library/yql/providers/dq/worker_manager/local_worker_manager.cpp index 52ce8ee2095..6b1aab4dee8 100644 --- a/ydb/library/yql/providers/dq/worker_manager/local_worker_manager.cpp +++ b/ydb/library/yql/providers/dq/worker_manager/local_worker_manager.cpp @@ -203,7 +203,7 @@ private: TString computeActorType = ev->Get()->Record.GetComputeActorType(); if (createComputeActor && !Options.CanUseComputeActor) { - Send(ev->Sender, MakeHolder<TEvAllocateWorkersResponse>("Compute Actor Disabled"), 0, ev->Cookie); + Send(ev->Sender, MakeHolder<TEvAllocateWorkersResponse>("Compute Actor Disabled", NYql::NDqProto::StatusIds::BAD_REQUEST), 0, ev->Cookie); return; } @@ -222,7 +222,7 @@ private: bool canAllocate = MemoryQuoter->Allocate(traceId, 0, count * Options.MkqlInitialMemoryLimit); if (!canAllocate) { - Send(ev->Sender, MakeHolder<TEvAllocateWorkersResponse>("Not enough memory to allocate tasks"), 0, ev->Cookie); + Send(ev->Sender, MakeHolder<TEvAllocateWorkersResponse>("Not enough memory to allocate tasks", NYql::NDqProto::StatusIds::OVERLOADED), 0, ev->Cookie); return; } |