aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <hor911@ydb.tech>2022-09-16 21:54:57 +0300
committerhor911 <hor911@ydb.tech>2022-09-16 21:54:57 +0300
commit1474d6ec81020fbf45ab0ac679448deb57e9678f (patch)
treeddf83c19fe8f0f5f9f143b74d281e96f12f98676
parent537a6ece545495ed4cfa87840624b35964bef3d9 (diff)
downloadydb-1474d6ec81020fbf45ab0ac679448deb57e9678f.tar.gz
Allocation error detalization
-rw-r--r--ydb/core/yq/libs/actors/nodes_manager.cpp4
-rw-r--r--ydb/library/yql/providers/dq/actors/executer_actor.cpp4
-rw-r--r--ydb/library/yql/providers/dq/actors/resource_allocator.cpp2
-rw-r--r--ydb/library/yql/providers/dq/api/protos/dqs.proto3
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/interface/events.cpp4
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/interface/events.h2
-rw-r--r--ydb/library/yql/providers/dq/worker_manager/local_worker_manager.cpp4
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;
}