diff options
author | dgabaydulin <dgabaydulin@yandex-team.ru> | 2022-02-10 16:52:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:52:17 +0300 |
commit | 3e85b4ab515714ff8015c117263c2aa19321b182 (patch) | |
tree | b3924dd56d7ec8c15bee766a310bf6a39ee127e2 | |
parent | af28643b7c02cbeb5df8240f479dfc9a323382ec (diff) | |
download | ydb-3e85b4ab515714ff8015c117263c2aa19321b182.tar.gz |
Restoring authorship annotation for <dgabaydulin@yandex-team.ru>. Commit 1 of 2.
20 files changed, 254 insertions, 254 deletions
diff --git a/ydb/library/yql/dq/common/dq_common.h b/ydb/library/yql/dq/common/dq_common.h index 71cc7be6cb8..a294c6c1b34 100644 --- a/ydb/library/yql/dq/common/dq_common.h +++ b/ydb/library/yql/dq/common/dq_common.h @@ -27,11 +27,11 @@ struct TBaseDqResManEvents { ES_IS_READY_RESPONSE, ES_JOB_STOP, ES_JOB_STOP_RESPONSE, - - ES_GET_MASTER, - ES_GET_MASTER_RESPONSE, - - ES_CONFIGURE_FAILURE_INJECTOR, + + ES_GET_MASTER, + ES_GET_MASTER_RESPONSE, + + ES_CONFIGURE_FAILURE_INJECTOR, ES_CONFIGURE_FAILURE_INJECTOR_RESPONSE, ES_QUERY_STATUS, diff --git a/ydb/library/yql/protos/clickhouse.proto b/ydb/library/yql/protos/clickhouse.proto index 71511e9d317..8f6c1920b9a 100644 --- a/ydb/library/yql/protos/clickhouse.proto +++ b/ydb/library/yql/protos/clickhouse.proto @@ -1,10 +1,10 @@ -package NYql.NProto; -option java_package = "ru.yandex.yql.proto"; - +package NYql.NProto; +option java_package = "ru.yandex.yql.proto"; + import "ydb/library/yql/protos/common.proto"; - -message TClickHouseRunnerConfig { - optional uint32 MaxResultRows = 3 [default = 1000]; - optional uint32 MaxResultBytes = 4 [default = 30000000]; - optional TTime MaxExecutionTime = 5; -} + +message TClickHouseRunnerConfig { + optional uint32 MaxResultRows = 3 [default = 1000]; + optional uint32 MaxResultBytes = 4 [default = 30000000]; + optional TTime MaxExecutionTime = 5; +} diff --git a/ydb/library/yql/protos/common.proto b/ydb/library/yql/protos/common.proto index 7274deeb4cf..09477f7edc4 100644 --- a/ydb/library/yql/protos/common.proto +++ b/ydb/library/yql/protos/common.proto @@ -1,17 +1,17 @@ -package NYql.NProto; -option java_package = "ru.yandex.yql.proto"; - -message TTime { - enum TUnit { - NANOSECONDS = 1; - MICROSECONDS = 2; - MILLISECONDS = 3; - SECONDS = 4; - MINUTES = 5; - HOURS = 6; - DAYS = 7; - } - - optional uint64 Value = 1; - optional TUnit Unit = 2; -} +package NYql.NProto; +option java_package = "ru.yandex.yql.proto"; + +message TTime { + enum TUnit { + NANOSECONDS = 1; + MICROSECONDS = 2; + MILLISECONDS = 3; + SECONDS = 4; + MINUTES = 5; + HOURS = 6; + DAYS = 7; + } + + optional uint64 Value = 1; + optional TUnit Unit = 2; +} diff --git a/ydb/library/yql/protos/ya.make b/ydb/library/yql/protos/ya.make index c9200505fb4..f81d765f1d0 100644 --- a/ydb/library/yql/protos/ya.make +++ b/ydb/library/yql/protos/ya.make @@ -3,9 +3,9 @@ PROTO_LIBRARY() OWNER(g:yql) SRCS( - common.proto + common.proto yql_mount.proto - clickhouse.proto + clickhouse.proto ) EXCLUDE_TAGS(GO_PROTO) diff --git a/ydb/library/yql/providers/common/proto/gateways_config.proto b/ydb/library/yql/providers/common/proto/gateways_config.proto index 8561fe25368..061c091a3ea 100644 --- a/ydb/library/yql/providers/common/proto/gateways_config.proto +++ b/ydb/library/yql/providers/common/proto/gateways_config.proto @@ -2,7 +2,7 @@ package NYql; option java_package = "ru.yandex.yql.proto"; import "ydb/library/yql/protos/clickhouse.proto"; - + /////////////////////////////// common /////////////////////////////// message TActivationByHour { @@ -43,13 +43,13 @@ enum EHostScheme { HS_HTTPS = 1; }; -enum ETokenType { - IAM = 0; - OAUTH = 1; - BLACKBOX = 2; - CREDENTIALS = 3; -}; - +enum ETokenType { + IAM = 0; + OAUTH = 1; + BLACKBOX = 2; + CREDENTIALS = 3; +}; + /////////////////////////////// HTTP GATEWAY ////////////////////// message THttpGatewayConfig { @@ -117,7 +117,7 @@ message TKikimrClusterConfig { optional string ProxyUrl = 8; optional string Location = 9; optional bool IsFromMvp = 10; - optional ETokenType TokenType = 11; + optional ETokenType TokenType = 11; repeated TAttr Settings = 101; } @@ -176,7 +176,7 @@ message TClickHouseClusterConfig { optional string CHTokenYavSecretId = 7; optional string CHTokenYavVersionId = 8; optional string CHTokenYavKey = 9; - optional NYql.NProto.TClickHouseRunnerConfig Runner = 10; + optional NYql.NProto.TClickHouseRunnerConfig Runner = 10; optional uint32 NativeHostPort = 11 [default = 9000]; optional bool NativeSecure = 12 [default = false]; optional string Id = 13; @@ -366,31 +366,31 @@ message TFileStorageAdditionalConfig { repeated string AllowedUrlPatterns = 1; } -/////////////////////////////// Postgresql ///////////////////////////// - -message TPostgresqlClusterConfig { - optional string Name = 1; - optional string Cluster = 2; - optional string PGtoken = 3; -} - -message TPostgresqlGatewayConfig { - repeated TPostgresqlClusterConfig ClusterMapping = 1; -} - -/////////////////////////////// Mysql ///////////////////////////// - -message TMysqlClusterConfig { - optional string Name = 1; - optional string Cluster = 2; - optional string MysqlToken = 3; -} - -message TMysqlGatewayConfig { - repeated TMysqlClusterConfig ClusterMapping = 1; -} - - +/////////////////////////////// Postgresql ///////////////////////////// + +message TPostgresqlClusterConfig { + optional string Name = 1; + optional string Cluster = 2; + optional string PGtoken = 3; +} + +message TPostgresqlGatewayConfig { + repeated TPostgresqlClusterConfig ClusterMapping = 1; +} + +/////////////////////////////// Mysql ///////////////////////////// + +message TMysqlClusterConfig { + optional string Name = 1; + optional string Cluster = 2; + optional string MysqlToken = 3; +} + +message TMysqlGatewayConfig { + repeated TMysqlClusterConfig ClusterMapping = 1; +} + + /////////////////////////////// Dq ///////////////////////////////////// message TDqGatewayConfig { message TDefaultAutoByHourPercentage { @@ -446,10 +446,10 @@ message TGatewaysConfig { optional TSolomonGatewayConfig Solomon = 8; optional TFileStorageAdditionalConfig Fs = 9; optional TYqlCoreConfig YqlCore = 10; - optional TPostgresqlGatewayConfig Postgresql = 11; + optional TPostgresqlGatewayConfig Postgresql = 11; optional TSqlCoreConfig SqlCore = 12; optional TDqGatewayConfig Dq = 13; - optional TMysqlGatewayConfig Mysql = 14; + optional TMysqlGatewayConfig Mysql = 14; optional TYdbGatewayConfig Ydb = 15; optional TPqGatewayConfig Pq = 16; optional TS3GatewayConfig S3 = 17; diff --git a/ydb/library/yql/providers/common/proto/ya.make b/ydb/library/yql/providers/common/proto/ya.make index 5b79b7dd12d..0fc53da0ea2 100644 --- a/ydb/library/yql/providers/common/proto/ya.make +++ b/ydb/library/yql/providers/common/proto/ya.make @@ -7,10 +7,10 @@ SRCS( udf_resolver.proto ) -PEERDIR( +PEERDIR( ydb/library/yql/protos -) - +) + IF (NOT PY_PROTOS_FOR) EXCLUDE_TAGS(GO_PROTO) ENDIF() diff --git a/ydb/library/yql/providers/dq/actors/worker_actor.cpp b/ydb/library/yql/providers/dq/actors/worker_actor.cpp index f4503a60b2e..a3adfa186a9 100644 --- a/ydb/library/yql/providers/dq/actors/worker_actor.cpp +++ b/ydb/library/yql/providers/dq/actors/worker_actor.cpp @@ -14,7 +14,7 @@ #include <util/stream/file.h> #include <util/string/split.h> -#include <util/stream/output.h> +#include <util/stream/output.h> using namespace NYql::NDq; using namespace NYql::NDq::NTaskRunnerActor; @@ -22,7 +22,7 @@ using namespace NYql::NDqProto; using namespace NActors; namespace NYql::NDqs { - + struct TInputChannel { bool Finished{false}; bool Requested{false}; @@ -286,7 +286,7 @@ private: YQL_LOG(DEBUG) << "TDqWorker::OnDqTask"; TFailureInjector::Reach("dq_task_failure", [] {::_exit(1); }); - + Y_VERIFY(!TaskRunnerActor); Stat.StartCounter(Stat.GetCounterName("Actor", {{"ClusterName", RuntimeData ? RuntimeData->ClusterName : "local"}}, "ProcessInit")); diff --git a/ydb/library/yql/providers/dq/api/grpc/api.proto b/ydb/library/yql/providers/dq/api/grpc/api.proto index ef620dca4f4..d249323163c 100644 --- a/ydb/library/yql/providers/dq/api/grpc/api.proto +++ b/ydb/library/yql/providers/dq/api/grpc/api.proto @@ -16,8 +16,8 @@ service DqService { rpc OperationStop (OperationStopRequest) returns (OperationStopResponse); rpc QueryStatus (QueryStatusRequest) returns (QueryStatusResponse); rpc JobStop (JobStopRequest) returns (JobStopResponse); - rpc GetMaster (GetMasterRequest) returns (GetMasterResponse); - rpc ConfigureFailureInjector (ConfigureFailureInjectorRequest) returns (ConfigureFailureInjectorResponse); + rpc GetMaster (GetMasterRequest) returns (GetMasterResponse); + rpc ConfigureFailureInjector (ConfigureFailureInjectorRequest) returns (ConfigureFailureInjectorResponse); rpc IsReady (IsReadyRequest) returns (IsReadyResponse); rpc Routes (RoutesRequest) returns (RoutesResponse); rpc Benchmark (BenchmarkRequest) returns (BenchmarkResponse); diff --git a/ydb/library/yql/providers/dq/api/protos/dqs.proto b/ydb/library/yql/providers/dq/api/protos/dqs.proto index 09aecfcf923..f8bbe272809 100644 --- a/ydb/library/yql/providers/dq/api/protos/dqs.proto +++ b/ydb/library/yql/providers/dq/api/protos/dqs.proto @@ -244,22 +244,22 @@ message TDqTaskPrepareResult { bool Result = 1; repeated TMetric Metric = 2; } - -message TEvGetMasterRequest { - bool IsForwarded = 1; -} - -message TEvGetMasterResponse { - Yql.DqsProto.GetMasterResponse Response = 1; -} - -message TEvConfigureFailureInjectorRequest { - Yql.DqsProto.ConfigureFailureInjectorRequest Request = 1; -} - -message TEvConfigureFailureInjectorRequestResponse { - Yql.DqsProto.ConfigureFailureInjectorResponse Response = 1; -} + +message TEvGetMasterRequest { + bool IsForwarded = 1; +} + +message TEvGetMasterResponse { + Yql.DqsProto.GetMasterResponse Response = 1; +} + +message TEvConfigureFailureInjectorRequest { + Yql.DqsProto.ConfigureFailureInjectorRequest Request = 1; +} + +message TEvConfigureFailureInjectorRequestResponse { + Yql.DqsProto.ConfigureFailureInjectorResponse Response = 1; +} message TPingRequest { diff --git a/ydb/library/yql/providers/dq/api/protos/service.proto b/ydb/library/yql/providers/dq/api/protos/service.proto index b91351e5d12..d627dfa8b3b 100644 --- a/ydb/library/yql/providers/dq/api/protos/service.proto +++ b/ydb/library/yql/providers/dq/api/protos/service.proto @@ -299,24 +299,24 @@ message ClusterStatusResponse { repeated TServiceNode ServiceNode = 10; } - -message GetMasterRequest { -} - -message GetMasterResponse { - string Host = 1; - uint64 Port = 2; -} - -message ConfigureFailureInjectorRequest { - string Name = 1; + +message GetMasterRequest { +} + +message GetMasterResponse { + string Host = 1; + uint64 Port = 2; +} + +message ConfigureFailureInjectorRequest { + string Name = 1; uint64 Skip = 2; uint64 CountOfFails = 5; - uint32 NodeId = 4; // aka actor id -} - -message ConfigureFailureInjectorResponse { - bool success = 1; + uint32 NodeId = 4; // aka actor id +} + +message ConfigureFailureInjectorResponse { + bool success = 1; } message IsReadyRequest { diff --git a/ydb/library/yql/providers/dq/service/grpc_service.cpp b/ydb/library/yql/providers/dq/service/grpc_service.cpp index 65a9e500d9d..683e193d0f7 100644 --- a/ydb/library/yql/providers/dq/service/grpc_service.cpp +++ b/ydb/library/yql/providers/dq/service/grpc_service.cpp @@ -684,42 +684,42 @@ namespace NYql::NDqs { ActorSystem.Send(new IEventHandle(MakeWorkerManagerActorID(ActorSystem.NodeId), callbackId, ev.Release(), IEventHandle::FlagTrackDelivery)); }); - - ADD_REQUEST(GetMaster, GetMasterRequest, GetMasterResponse, { - auto* request = dynamic_cast<const Yql::DqsProto::GetMasterRequest*>(ctx->GetRequest()); - Y_VERIFY(!!request); - - auto requestEvent = MakeHolder<TEvGetMasterRequest>(); - - auto callback = MakeHolder<TActorFutureCallback<TEvGetMasterResponse>>( - [ctx] (TAutoPtr<TEventHandle<TEvGetMasterResponse>>& event) mutable { - auto* result = google::protobuf::Arena::CreateMessage<Yql::DqsProto::GetMasterResponse>(ctx->GetArena()); - result->MergeFrom(event->Get()->Record.GetResponse()); - ctx->Reply(result, Ydb::StatusIds::SUCCESS); - }); - + + ADD_REQUEST(GetMaster, GetMasterRequest, GetMasterResponse, { + auto* request = dynamic_cast<const Yql::DqsProto::GetMasterRequest*>(ctx->GetRequest()); + Y_VERIFY(!!request); + + auto requestEvent = MakeHolder<TEvGetMasterRequest>(); + + auto callback = MakeHolder<TActorFutureCallback<TEvGetMasterResponse>>( + [ctx] (TAutoPtr<TEventHandle<TEvGetMasterResponse>>& event) mutable { + auto* result = google::protobuf::Arena::CreateMessage<Yql::DqsProto::GetMasterResponse>(ctx->GetArena()); + result->MergeFrom(event->Get()->Record.GetResponse()); + ctx->Reply(result, Ydb::StatusIds::SUCCESS); + }); + TActorId callbackId = ActorSystem.Register(callback.Release()); - + ActorSystem.Send(new IEventHandle(MakeWorkerManagerActorID(ActorSystem.NodeId), callbackId, requestEvent.Release())); - }); - - ADD_REQUEST(ConfigureFailureInjector, ConfigureFailureInjectorRequest, ConfigureFailureInjectorResponse,{ - auto* request = dynamic_cast<const Yql::DqsProto::ConfigureFailureInjectorRequest*>(ctx->GetRequest()); - Y_VERIFY(!!request); - - auto requestEvent = MakeHolder<TEvConfigureFailureInjectorRequest>(*request); - - auto callback = MakeHolder<TActorFutureCallback<TEvConfigureFailureInjectorResponse>>( - [ctx] (TAutoPtr<TEventHandle<TEvConfigureFailureInjectorResponse>>& event) mutable { - auto* result = google::protobuf::Arena::CreateMessage<Yql::DqsProto::ConfigureFailureInjectorResponse>(ctx->GetArena()); - result->MergeFrom(event->Get()->Record.GetResponse()); - ctx->Reply(result, Ydb::StatusIds::SUCCESS); - }); - + }); + + ADD_REQUEST(ConfigureFailureInjector, ConfigureFailureInjectorRequest, ConfigureFailureInjectorResponse,{ + auto* request = dynamic_cast<const Yql::DqsProto::ConfigureFailureInjectorRequest*>(ctx->GetRequest()); + Y_VERIFY(!!request); + + auto requestEvent = MakeHolder<TEvConfigureFailureInjectorRequest>(*request); + + auto callback = MakeHolder<TActorFutureCallback<TEvConfigureFailureInjectorResponse>>( + [ctx] (TAutoPtr<TEventHandle<TEvConfigureFailureInjectorResponse>>& event) mutable { + auto* result = google::protobuf::Arena::CreateMessage<Yql::DqsProto::ConfigureFailureInjectorResponse>(ctx->GetArena()); + result->MergeFrom(event->Get()->Record.GetResponse()); + ctx->Reply(result, Ydb::StatusIds::SUCCESS); + }); + TActorId callbackId = ActorSystem.Register(callback.Release()); - + ActorSystem.Send(new IEventHandle(MakeWorkerManagerActorID(ActorSystem.NodeId), callbackId, requestEvent.Release())); - }); + }); ADD_REQUEST(IsReady, IsReadyRequest, IsReadyResponse, { auto* request = dynamic_cast<const Yql::DqsProto::IsReadyRequest*>(ctx->GetRequest()); diff --git a/ydb/library/yql/providers/dq/service/service_node.cpp b/ydb/library/yql/providers/dq/service/service_node.cpp index cda24ec6cf7..05be5d67051 100644 --- a/ydb/library/yql/providers/dq/service/service_node.cpp +++ b/ydb/library/yql/providers/dq/service/service_node.cpp @@ -140,7 +140,7 @@ namespace NYql { .SetMaxGlobalRequestInFlight(50000) .SetUseAuth(false) .SetKeepAliveEnable(true) - .SetKeepAliveIdleTimeoutTriggerSec(360) + .SetKeepAliveIdleTimeoutTriggerSec(360) .SetKeepAliveMaxProbeCount(3) .SetKeepAliveProbeIntervalSec(1) .SetServerBuilderMutator([](grpc::ServerBuilder& builder) { 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..5036817e519 100644 --- a/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp +++ b/ydb/library/yql/providers/dq/worker_manager/interface/events.cpp @@ -105,10 +105,10 @@ namespace NYql::NDqs { Record.SetIsForwarded(false); } - TEvConfigureFailureInjectorRequest::TEvConfigureFailureInjectorRequest(const Yql::DqsProto::ConfigureFailureInjectorRequest& request) { - *Record.MutableRequest() = request; - } - + TEvConfigureFailureInjectorRequest::TEvConfigureFailureInjectorRequest(const Yql::DqsProto::ConfigureFailureInjectorRequest& request) { + *Record.MutableRequest() = request; + } + TEvQueryStatus::TEvQueryStatus(const Yql::DqsProto::QueryStatusRequest& request) { *Record.MutableRequest() = request; } 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..51d6454d2d7 100644 --- a/ydb/library/yql/providers/dq/worker_manager/interface/events.h +++ b/ydb/library/yql/providers/dq/worker_manager/interface/events.h @@ -127,31 +127,31 @@ using TDqResManEvents = NDq::TBaseDqResManEvents<NActors::TEvents::EEventSpace:: TEvRoutesResponse() = default; }; - struct TEvGetMasterRequest - : NActors::TEventPB<TEvGetMasterRequest, NYql::NDqProto::TEvGetMasterRequest, TDqResManEvents::ES_GET_MASTER> { - - TEvGetMasterRequest() = default; - }; - - struct TEvGetMasterResponse - : NActors::TEventPB<TEvGetMasterResponse, NYql::NDqProto::TEvGetMasterResponse, TDqResManEvents::ES_GET_MASTER_RESPONSE> { - - TEvGetMasterResponse() = default; - }; - - struct TEvConfigureFailureInjectorRequest - : NActors::TEventPB<TEvConfigureFailureInjectorRequest, NYql::NDqProto::TEvConfigureFailureInjectorRequest, TDqResManEvents::ES_CONFIGURE_FAILURE_INJECTOR> { - - TEvConfigureFailureInjectorRequest() = default; - TEvConfigureFailureInjectorRequest(const Yql::DqsProto::ConfigureFailureInjectorRequest& request); - }; - - struct TEvConfigureFailureInjectorResponse - : NActors::TEventPB<TEvConfigureFailureInjectorResponse, NYql::NDqProto::TEvConfigureFailureInjectorRequestResponse, TDqResManEvents::ES_CONFIGURE_FAILURE_INJECTOR_RESPONSE> { - - TEvConfigureFailureInjectorResponse() = default; - }; - + struct TEvGetMasterRequest + : NActors::TEventPB<TEvGetMasterRequest, NYql::NDqProto::TEvGetMasterRequest, TDqResManEvents::ES_GET_MASTER> { + + TEvGetMasterRequest() = default; + }; + + struct TEvGetMasterResponse + : NActors::TEventPB<TEvGetMasterResponse, NYql::NDqProto::TEvGetMasterResponse, TDqResManEvents::ES_GET_MASTER_RESPONSE> { + + TEvGetMasterResponse() = default; + }; + + struct TEvConfigureFailureInjectorRequest + : NActors::TEventPB<TEvConfigureFailureInjectorRequest, NYql::NDqProto::TEvConfigureFailureInjectorRequest, TDqResManEvents::ES_CONFIGURE_FAILURE_INJECTOR> { + + TEvConfigureFailureInjectorRequest() = default; + TEvConfigureFailureInjectorRequest(const Yql::DqsProto::ConfigureFailureInjectorRequest& request); + }; + + struct TEvConfigureFailureInjectorResponse + : NActors::TEventPB<TEvConfigureFailureInjectorResponse, NYql::NDqProto::TEvConfigureFailureInjectorRequestResponse, TDqResManEvents::ES_CONFIGURE_FAILURE_INJECTOR_RESPONSE> { + + TEvConfigureFailureInjectorResponse() = default; + }; + inline NActors::TActorId MakeWorkerManagerActorID(ui32 nodeId) { char x[12] = {'r', 'e', 's', 'm', 'a', 'n'}; memcpy(x + 7, &nodeId, sizeof(ui32)); 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 5ecf0a4a852..adc63e9edc5 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 @@ -174,21 +174,21 @@ private: } void OnConfigureFailureInjector(TEvConfigureFailureInjectorRequest::TPtr& ev) { - YQL_LOG(DEBUG) << "TEvConfigureFailureInjectorRequest "; - - auto& request = ev->Get()->Record.GetRequest(); - YQL_ENSURE(request.GetNodeId() == SelfId().NodeId(), "Wrong node id!"); - + YQL_LOG(DEBUG) << "TEvConfigureFailureInjectorRequest "; + + auto& request = ev->Get()->Record.GetRequest(); + YQL_ENSURE(request.GetNodeId() == SelfId().NodeId(), "Wrong node id!"); + TFailureInjector::Set(request.GetName(), request.GetSkip(), request.GetCountOfFails()); YQL_LOG(DEBUG) << "Failure injector is configured " << request.GetName(); - - auto response = MakeHolder<TEvConfigureFailureInjectorResponse>(); - auto* r = response->Record.MutableResponse(); - r->Setsuccess(true); - - Send(ev->Sender, response.Release()); - } - + + auto response = MakeHolder<TEvConfigureFailureInjectorResponse>(); + auto* r = response->Record.MutableResponse(); + r->Setsuccess(true); + + Send(ev->Sender, response.Release()); + } + void OnAllocateWorkersRequest(TEvAllocateWorkersRequest::TPtr& ev) { ui64 resourceId; if (ev->Get()->Record.GetResourceId()) { diff --git a/ydb/library/yql/utils/failure_injector/failure_injector.cpp b/ydb/library/yql/utils/failure_injector/failure_injector.cpp index db368a0aa67..d288d8f85cf 100644 --- a/ydb/library/yql/utils/failure_injector/failure_injector.cpp +++ b/ydb/library/yql/utils/failure_injector/failure_injector.cpp @@ -1,8 +1,8 @@ -#include "failure_injector.h" +#include "failure_injector.h" #include <ydb/library/yql/utils/log/log.h> #include <ydb/library/yql/utils/yql_panic.h> - + #include <util/generic/singleton.h> namespace NYql { @@ -14,16 +14,16 @@ void TFailureInjector::Activate() { void TFailureInjector::Set(std::string_view name, ui64 skip, ui64 countOfFails) { Singleton<TFailureInjector>()->SetImpl(name, skip, countOfFails); } - + void TFailureInjector::Reach(std::string_view name, std::function<void()> action) { Singleton<TFailureInjector>()->ReachImpl(name, action); } - + void TFailureInjector::ActivateImpl() { Enabled_.store(true); YQL_LOG(DEBUG) << "TFailureInjector::Activate"; } - + void TFailureInjector::ReachImpl(std::string_view name, std::function<void()> action) { if (!Enabled_.load()) { return; @@ -37,16 +37,16 @@ void TFailureInjector::ReachImpl(std::string_view name, std::function<void()> ac YQL_LOG(DEBUG) << "TFailureInjector::OnReach: " << name; --failureSpec->CountOfFails; action(); - } - } - } + } + } + } } - + void TFailureInjector::SetImpl(std::string_view name, ui64 skip, ui64 countOfFails) { with_lock(Lock) { YQL_ENSURE(countOfFails > 0, "failure " << name << ", 'countOfFails' must be positive"); FailureSpecs[TString{name}] = TFailureSpec{skip, countOfFails}; - } + } } - + } // NYql diff --git a/ydb/library/yql/utils/failure_injector/failure_injector.h b/ydb/library/yql/utils/failure_injector/failure_injector.h index ea2304f5d89..fa6e3d0375c 100644 --- a/ydb/library/yql/utils/failure_injector/failure_injector.h +++ b/ydb/library/yql/utils/failure_injector/failure_injector.h @@ -1,34 +1,34 @@ -#pragma once - -#include <util/generic/hash.h> -#include <util/generic/string.h> -#include <util/system/mutex.h> +#pragma once + +#include <util/generic/hash.h> +#include <util/generic/string.h> +#include <util/system/mutex.h> #include <string_view> - -namespace NYql { - + +namespace NYql { + class TFailureInjector { public: static void Activate(); - + static void Set(std::string_view name, ui64 skip, ui64 countOfFails); static void Reach(std::string_view name, std::function<void()> action); - + private: void ActivateImpl(); - + void SetImpl(std::string_view name, ui64 skip, ui64 countOfFails); void ReachImpl(std::string_view name, std::function<void()> action); - + struct TFailureSpec { ui64 Skip; ui64 CountOfFails; }; - + std::atomic<bool> Enabled_ = false; THashMap<TString, TFailureSpec> FailureSpecs; TMutex Lock; }; - + } // NYql diff --git a/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp b/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp index dd59d9283d7..33a03c22981 100644 --- a/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp +++ b/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp @@ -1,31 +1,31 @@ #include "failure_injector.h" - + #include <ydb/library/yql/utils/log/log.h> #include <library/cpp/testing/unittest/registar.h> #include <util/datetime/base.h> -#include <chrono> - -using namespace NYql; -using namespace NYql::NLog; -using namespace std::chrono; - -// do nothing -void OnReach(std::atomic<bool>& called) { - called.store(true); -} - -void SetUpLogger() { - TString logType = "cout"; - NLog::InitLogger(logType, false); - NLog::EComponentHelpers::ForEach([](NLog::EComponent component) { - NLog::YqlLogger().SetComponentLevel(component, ELevel::DEBUG); - }); -} - -Y_UNIT_TEST_SUITE(TFailureInjectorTests) { +#include <chrono> + +using namespace NYql; +using namespace NYql::NLog; +using namespace std::chrono; + +// do nothing +void OnReach(std::atomic<bool>& called) { + called.store(true); +} + +void SetUpLogger() { + TString logType = "cout"; + NLog::InitLogger(logType, false); + NLog::EComponentHelpers::ForEach([](NLog::EComponent component) { + NLog::YqlLogger().SetComponentLevel(component, ELevel::DEBUG); + }); +} + +Y_UNIT_TEST_SUITE(TFailureInjectorTests) { Y_UNIT_TEST(BasicFailureTest) { SetUpLogger(); std::atomic<bool> called; @@ -38,7 +38,7 @@ Y_UNIT_TEST_SUITE(TFailureInjectorTests) { TFailureInjector::Reach("misc_failure", behavior); UNIT_ASSERT_EQUAL(true, called.load()); } - + Y_UNIT_TEST(CheckSkipTest) { SetUpLogger(); std::atomic<bool> called; @@ -46,13 +46,13 @@ Y_UNIT_TEST_SUITE(TFailureInjectorTests) { auto behavior = [&called] { OnReach(called); }; TFailureInjector::Activate(); TFailureInjector::Set("misc_failure", 1, 1); - + TFailureInjector::Reach("misc_failure", behavior); UNIT_ASSERT_EQUAL(false, called.load()); TFailureInjector::Reach("misc_failure", behavior); UNIT_ASSERT_EQUAL(true, called.load()); } - + Y_UNIT_TEST(CheckFailCountTest) { SetUpLogger(); int called = 0; @@ -76,7 +76,7 @@ Y_UNIT_TEST_SUITE(TFailureInjectorTests) { SetUpLogger(); TFailureInjector::Activate(); TFailureInjector::Set("misc_failure", 0, 1); - + auto start = system_clock::now(); TFailureInjector::Reach("misc_failure", [] { ::Sleep(TDuration::Seconds(5)); }); auto finish = system_clock::now(); diff --git a/ydb/library/yql/utils/failure_injector/ut/ya.make b/ydb/library/yql/utils/failure_injector/ut/ya.make index 3bf651a4f42..5d7792820de 100644 --- a/ydb/library/yql/utils/failure_injector/ut/ya.make +++ b/ydb/library/yql/utils/failure_injector/ut/ya.make @@ -1,17 +1,17 @@ -OWNER(g:yql) - -IF (OS_LINUX OR OS_DARWIN) +OWNER(g:yql) + +IF (OS_LINUX OR OS_DARWIN) UNITTEST_FOR(ydb/library/yql/utils/failure_injector) - + SIZE(SMALL) - + SRCS( failure_injector_ut.cpp ) - + PEERDIR( ydb/library/yql/utils/log ) - + END() -ENDIF() +ENDIF() diff --git a/ydb/library/yql/utils/failure_injector/ya.make b/ydb/library/yql/utils/failure_injector/ya.make index 6f55ad68512..23fbe489897 100644 --- a/ydb/library/yql/utils/failure_injector/ya.make +++ b/ydb/library/yql/utils/failure_injector/ya.make @@ -1,17 +1,17 @@ -LIBRARY() - +LIBRARY() + OWNER(g:yql) - -SRCS( - failure_injector.cpp -) - -PEERDIR( + +SRCS( + failure_injector.cpp +) + +PEERDIR( ydb/library/yql/utils ydb/library/yql/utils/log -) - -END() +) + +END() RECURSE_FOR_TESTS( ut |