aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <hor911@ydb.tech>2022-09-16 11:53:16 +0300
committerhor911 <hor911@ydb.tech>2022-09-16 11:53:16 +0300
commit9fa4aa19ccc72330f2332fb81eb0fa37565c32c7 (patch)
treee51e83ebaff6929cf7c2966ab31dd7b33c0fe2ec
parentcb4b2fb05910b1c77f8c6ffe0f408080792fec75 (diff)
downloadydb-9fa4aa19ccc72330f2332fb81eb0fa37565c32c7.tar.gz
Clarify ResultWriter StatusCodes
-rw-r--r--ydb/core/yq/libs/actors/nodes_manager.cpp4
-rw-r--r--ydb/core/yq/libs/actors/result_writer.cpp16
-rw-r--r--ydb/core/yq/libs/protos/fq_private.proto1
3 files changed, 13 insertions, 8 deletions
diff --git a/ydb/core/yq/libs/actors/nodes_manager.cpp b/ydb/core/yq/libs/actors/nodes_manager.cpp
index a27447517b6..1ac1807b332 100644
--- a/ydb/core/yq/libs/actors/nodes_manager.cpp
+++ b/ydb/core/yq/libs/actors/nodes_manager.cpp
@@ -68,14 +68,14 @@ public:
static constexpr char ActorName[] = "YQ_NODES_MANAGER";
void PassAway() final {
- LOG_I("PassAway STOPPED");
+ LOG_I("PassAway, InstanceId: " << InstanceId);
NActors::IActor::PassAway();
}
void Bootstrap(const TActorContext&) {
Become(&TNodesManagerActor::StateFunc);
ServiceCounters.Counters->GetCounter("EvBootstrap", true)->Inc();
- LOG_I("Bootstrap STARTED");
+ LOG_I("Bootstrap, InstanceId: " << InstanceId);
NodesHealthCheck();
}
diff --git a/ydb/core/yq/libs/actors/result_writer.cpp b/ydb/core/yq/libs/actors/result_writer.cpp
index c24f694d3f4..86c2522b5e9 100644
--- a/ydb/core/yq/libs/actors/result_writer.cpp
+++ b/ydb/core/yq/libs/actors/result_writer.cpp
@@ -97,11 +97,11 @@ private:
HasError = true;
}
- void SendIssuesAndSetErrorFlag(const TIssues& issues) {
+ void SendIssuesAndSetErrorFlag(const TIssues& issues, NYql::NDqProto::StatusIds::StatusCode statusCode = NYql::NDqProto::StatusIds::INTERNAL_ERROR) {
LOG_E("ControlPlane WriteResult Issues: " << issues.ToString());
Issues.AddIssues(issues);
HasError = true;
- auto req = MakeHolder<TEvDqFailure>(NYql::NDqProto::StatusIds::INTERNAL_ERROR, Issues);
+ auto req = MakeHolder<TEvDqFailure>(statusCode, Issues);
Send(ExecuterId, req.Release());
}
@@ -128,9 +128,13 @@ private:
void OnReadyState(TEvReadyState::TPtr&, const TActorContext&) { }
void HandleResponse(NFq::TEvInternalService::TEvWriteResultResponse::TPtr& ev) {
+ auto statusCode = ev->Get()->Result.status_code();
const auto& issues = ev->Get()->Status.GetIssues();
- if (issues) {
- SendIssuesAndSetErrorFlag(issues);
+ if (issues && statusCode == NYql::NDqProto::StatusIds::UNSPECIFIED) {
+ statusCode = NYql::NDqProto::StatusIds::EXTERNAL_ERROR;
+ }
+ if (statusCode != NYql::NDqProto::StatusIds::UNSPECIFIED) {
+ SendIssuesAndSetErrorFlag(issues, statusCode);
return;
}
@@ -243,7 +247,7 @@ private:
const auto splittedResultSets = rowsSplitter.Split();
if (!splittedResultSets.Success) {
- SendIssuesAndSetErrorFlag(splittedResultSets.Issues);
+ SendIssuesAndSetErrorFlag(splittedResultSets.Issues, NYql::NDqProto::StatusIds::LIMIT_EXCEEDED);
return;
}
@@ -278,7 +282,7 @@ private:
if (OccupiedSpace > ResultBytesLimit) {
TIssues issues;
issues.AddIssue(TStringBuilder() << "Can not write results with size > " << ResultBytesLimit << " byte(s)");
- SendIssuesAndSetErrorFlag(issues);
+ SendIssuesAndSetErrorFlag(issues, NYql::NDqProto::StatusIds::LIMIT_EXCEEDED);
return;
}
diff --git a/ydb/core/yq/libs/protos/fq_private.proto b/ydb/core/yq/libs/protos/fq_private.proto
index 629e757ec69..3e9368fac59 100644
--- a/ydb/core/yq/libs/protos/fq_private.proto
+++ b/ydb/core/yq/libs/protos/fq_private.proto
@@ -159,6 +159,7 @@ message WriteTaskResultRequest {
message WriteTaskResultResult {
uint64 request_id = 1;
+ NYql.NDqProto.StatusIds.StatusCode status_code = 2;
}
message WriteTaskResultResponse {