diff options
author | hor911 <hor911@ydb.tech> | 2022-09-16 11:53:16 +0300 |
---|---|---|
committer | hor911 <hor911@ydb.tech> | 2022-09-16 11:53:16 +0300 |
commit | 9fa4aa19ccc72330f2332fb81eb0fa37565c32c7 (patch) | |
tree | e51e83ebaff6929cf7c2966ab31dd7b33c0fe2ec | |
parent | cb4b2fb05910b1c77f8c6ffe0f408080792fec75 (diff) | |
download | ydb-9fa4aa19ccc72330f2332fb81eb0fa37565c32c7.tar.gz |
Clarify ResultWriter StatusCodes
-rw-r--r-- | ydb/core/yq/libs/actors/nodes_manager.cpp | 4 | ||||
-rw-r--r-- | ydb/core/yq/libs/actors/result_writer.cpp | 16 | ||||
-rw-r--r-- | ydb/core/yq/libs/protos/fq_private.proto | 1 |
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 { |