aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrigoriypisar <grigoriypisar@yandex-team.com>2023-07-01 11:06:29 +0300
committergrigoriypisar <grigoriypisar@yandex-team.com>2023-07-01 11:06:29 +0300
commit53a0ced5335b33e79843e7ef3566348e257a2449 (patch)
tree66e2b402a7d8a5b0b7b2f5c582e7413da7c59c78
parent936178f666280af0bb960fde32c2fbaf0e86d330 (diff)
downloadydb-53a0ced5335b33e79843e7ef3566348e257a2449.tar.gz
Fix issues in
Deleted run_script_actor/ut/ Fixed issues #1 iter
-rw-r--r--ydb/core/kqp/common/events/script_executions.h6
-rw-r--r--ydb/core/kqp/proxy_service/kqp_script_executions.cpp123
-rw-r--r--ydb/core/kqp/proxy_service/kqp_script_executions.h2
-rw-r--r--ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp112
-rw-r--r--ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/proxy_service/ut/ya.make1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp78
-rw-r--r--ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp253
-rw-r--r--ydb/core/kqp/run_script_actor/ut/CMakeLists.darwin-x86_64.txt77
-rw-r--r--ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-aarch64.txt80
-rw-r--r--ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-x86_64.txt82
-rw-r--r--ydb/core/kqp/run_script_actor/ut/CMakeLists.txt17
-rw-r--r--ydb/core/kqp/run_script_actor/ut/CMakeLists.windows-x86_64.txt70
-rw-r--r--ydb/core/kqp/run_script_actor/ut/ya.make24
-rw-r--r--ydb/core/kqp/run_script_actor/ya.make4
22 files changed, 251 insertions, 686 deletions
diff --git a/ydb/core/kqp/common/events/script_executions.h b/ydb/core/kqp/common/events/script_executions.h
index 2ed8218fef3..26e876c4943 100644
--- a/ydb/core/kqp/common/events/script_executions.h
+++ b/ydb/core/kqp/common/events/script_executions.h
@@ -89,12 +89,14 @@ struct TEvListScriptExecutionOperationsResponse : public NActors::TEventLocal<TE
};
struct TEvScriptLeaseUpdateResponse : public NActors::TEventLocal<TEvScriptLeaseUpdateResponse, TKqpScriptExecutionEvents::EvScriptLeaseUpdateResponse> {
- TEvScriptLeaseUpdateResponse(Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
- : Status(status)
+ TEvScriptLeaseUpdateResponse(bool executionEntryExists, Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
+ : ExecutionEntryExists(executionEntryExists)
+ , Status(status)
, Issues(std::move(issues))
{
}
+ bool ExecutionEntryExists;
Ydb::StatusIds::StatusCode Status;
NYql::TIssues Issues;
};
diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions.cpp b/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
index 7bc832ccfb1..358178f255b 100644
--- a/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
+++ b/ydb/core/kqp/proxy_service/kqp_script_executions.cpp
@@ -25,6 +25,7 @@
#include <library/cpp/actors/core/log.h>
#include <library/cpp/protobuf/json/json2proto.h>
#include <library/cpp/protobuf/json/proto2json.h>
+#include <library/cpp/retry/retry_policy.h>
#include <util/generic/guid.h>
#include <util/generic/utility.h>
@@ -558,17 +559,50 @@ private:
class TScriptLeaseUpdater : public TQueryBase {
public:
- TScriptLeaseUpdater(const TString& database, const TString& executionId, const TInstant& leaseDeadline)
+ TScriptLeaseUpdater(const TString& database, const TString& executionId, TDuration leaseDuration)
: Database(database)
, ExecutionId(executionId)
- , LeaseDeadline(leaseDeadline)
+ , LeaseDuration(leaseDuration)
{}
void OnRunQuery() override {
TString sql = R"(
DECLARE $database AS Text;
DECLARE $execution_id AS Text;
- DECLARE $lease_deadline AS Datetime;
+
+ SELECT lease_deadline FROM `.metadata/script_execution_leases`
+ WHERE database = $database AND execution_id = $execution_id;
+ )";
+
+ NYdb::TParamsBuilder params;
+ params
+ .AddParam("$database")
+ .Utf8(Database)
+ .Build()
+ .AddParam("$execution_id")
+ .Utf8(ExecutionId)
+ .Build();
+
+ RunDataQuery(sql, &params, TTxControl::BeginTx());
+ SetQueryResultHandler(&TScriptLeaseUpdater::OnGetLeaseInfo);
+ }
+
+ void OnGetLeaseInfo() {
+ if (ResultSets.size() != 1) {
+ Finish(Ydb::StatusIds::INTERNAL_ERROR, "Unexpected database response");
+ return;
+ }
+ NYdb::TResultSetParser result(ResultSets[0]);
+ if (result.RowsCount() == 0) {
+ LeaseExists = false;
+ Finish(Ydb::StatusIds::BAD_REQUEST, "No such execution");
+ return;
+ }
+
+ TString sql = R"(
+ DECLARE $database AS Text;
+ DECLARE $execution_id AS Text;
+ DECLARE $lease_deadline AS Timestamp;
UPDATE `.metadata/script_execution_leases`
SET lease_deadline=$lease_deadline
@@ -584,10 +618,11 @@ public:
.Utf8(ExecutionId)
.Build()
.AddParam("$lease_deadline")
- .Datetime(LeaseDeadline)
+ .Timestamp(TInstant::Now() + LeaseDuration)
.Build();
- RunDataQuery(sql, &params);
+ RunDataQuery(sql, &params, TTxControl::ContinueAndCommitTx());
+ SetQueryResultHandler(&TScriptLeaseUpdater::OnQueryResult);
}
void OnQueryResult() override {
@@ -595,28 +630,29 @@ public:
}
void OnFinish(Ydb::StatusIds::StatusCode status, NYql::TIssues&& issues) override {
- Send(Owner, new TEvScriptLeaseUpdateResponse(status, std::move(issues)));
+ Send(Owner, new TEvScriptLeaseUpdateResponse(LeaseExists, status, std::move(issues)));
}
private:
const TString Database;
const TString ExecutionId;
- const TInstant LeaseDeadline;
+ const TDuration LeaseDuration;
+ bool LeaseExists = true;
};
class TScriptLeaseUpdateActor : public TActorBootstrapped<TScriptLeaseUpdateActor> {
- static constexpr ui32 MAX_NUMBER_OF_ATTEMPTS = 5;
-
public:
- TScriptLeaseUpdateActor(const TActorId& runScriptActorId, const TString& database, const TString& executionId, const TInstant& leaseDeadline)
+ using IRetryPolicy = IRetryPolicy<const Ydb::StatusIds::StatusCode&>;
+
+ TScriptLeaseUpdateActor(const TActorId& runScriptActorId, const TString& database, const TString& executionId, TDuration leaseDuration)
: RunScriptActorId(runScriptActorId)
, Database(database)
, ExecutionId(executionId)
- , LeaseDeadline(leaseDeadline)
+ , LeaseDuration(leaseDuration)
{}
void CreateScriptLeaseUpdater() {
- Register(new TScriptLeaseUpdater(Database, ExecutionId, LeaseDeadline));
+ Register(new TScriptLeaseUpdater(Database, ExecutionId, LeaseDuration));
}
void Bootstrap() {
@@ -626,32 +662,69 @@ public:
STRICT_STFUNC(StateFunc,
hFunc(TEvScriptLeaseUpdateResponse, Handle);
+ hFunc(NActors::TEvents::TEvWakeup, Wakeup);
)
+ void Wakeup(NActors::TEvents::TEvWakeup::TPtr&) {
+ CreateScriptLeaseUpdater();
+ }
+
void Handle(TEvScriptLeaseUpdateResponse::TPtr& ev) {
- NumberOfAttempts += 1;
- Response = std::move(ev);
-
- if (Response->Get()->Status == Ydb::StatusIds::SUCCESS || NumberOfAttempts == MAX_NUMBER_OF_ATTEMPTS) {
- Reply();
+ auto queryStatus = ev->Get()->Status;
+ if (!ev->Get()->ExecutionEntryExists && queryStatus == Ydb::StatusIds::BAD_REQUEST || queryStatus == Ydb::StatusIds::SUCCESS) {
+ Reply(std::move(ev));
return;
}
- CreateScriptLeaseUpdater();
+ if (RetryState == nullptr) {
+ CreateRetryState();
+ }
+
+ const TMaybe<TDuration> delay = RetryState->GetNextRetryDelay(queryStatus);
+ if (delay) {
+ Schedule(*delay, new NActors::TEvents::TEvWakeup());
+ } else {
+ Reply(std::move(ev));
+ }
}
- void Reply() {
- Send(RunScriptActorId, Response->Release().Release());
+ void Reply(TEvScriptLeaseUpdateResponse::TPtr&& ev) {
+ Send(RunScriptActorId, ev->Release().Release());
PassAway();
}
+ static ERetryErrorClass Retryable(const Ydb::StatusIds::StatusCode& status) {
+ if (status == Ydb::StatusIds::SUCCESS) {
+ return ERetryErrorClass::NoRetry;
+ }
+
+ if (status == Ydb::StatusIds::INTERNAL_ERROR
+ || status == Ydb::StatusIds::UNAVAILABLE
+ || status == Ydb::StatusIds::TIMEOUT
+ || status == Ydb::StatusIds::BAD_SESSION
+ || status == Ydb::StatusIds::SESSION_EXPIRED
+ || status == Ydb::StatusIds::SESSION_BUSY) {
+ return ERetryErrorClass::ShortRetry;
+ }
+
+ if (status == Ydb::StatusIds::OVERLOADED) {
+ return ERetryErrorClass::LongRetry;
+ }
+
+ return ERetryErrorClass::NoRetry;
+ }
+
+ void CreateRetryState() {
+ IRetryPolicy::TPtr policy = IRetryPolicy::GetExponentialBackoffPolicy(Retryable, TDuration::MilliSeconds(10), TDuration::MilliSeconds(200), TDuration::Seconds(1), std::numeric_limits<size_t>::max(), LeaseDuration / 2);
+ RetryState = policy->CreateRetryState();
+ }
+
private:
TActorId RunScriptActorId;
TString Database;
TString ExecutionId;
- TInstant LeaseDeadline;
- TEvScriptLeaseUpdateResponse::TPtr Response;
- ui32 NumberOfAttempts = 0;
+ TDuration LeaseDuration;
+ IRetryPolicy::IRetryState::TPtr RetryState = nullptr;
};
class TScriptExecutionFinisherBase : public TQueryBase {
@@ -1985,8 +2058,8 @@ NActors::IActor* CreateGetRunScriptActorActor(TEvKqp::TEvGetRunScriptActorReques
return new TGetRunScriptActorActor(std::move(ev));
}
-NActors::IActor* CreateScriptLeaseUpdateActor(const TActorId& runScriptActorId, const TString& database, const TString& executionId, const TInstant& leaseDeadline) {
- return new TScriptLeaseUpdateActor(runScriptActorId, database, executionId, leaseDeadline);
+NActors::IActor* CreateScriptLeaseUpdateActor(const TActorId& runScriptActorId, const TString& database, const TString& executionId, TDuration leaseDuration) {
+ return new TScriptLeaseUpdateActor(runScriptActorId, database, executionId, leaseDuration);
}
NActors::IActor* CreateSaveScriptExecutionResultMetaActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, const TString& serializedMeta) {
diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions.h b/ydb/core/kqp/proxy_service/kqp_script_executions.h
index 901c143e0ce..8ce520a1187 100644
--- a/ydb/core/kqp/proxy_service/kqp_script_executions.h
+++ b/ydb/core/kqp/proxy_service/kqp_script_executions.h
@@ -35,7 +35,7 @@ NActors::IActor* CreateScriptExecutionFinisher(
);
// Updates lease deadline in database.
-NActors::IActor* CreateScriptLeaseUpdateActor(const TActorId& runScriptActorId, const TString& database, const TString& executionId, const TInstant& leaseDeadline);
+NActors::IActor* CreateScriptLeaseUpdateActor(const TActorId& runScriptActorId, const TString& database, const TString& executionId, TDuration leaseDuration);
// Store and fetch results.
NActors::IActor* CreateSaveScriptExecutionResultMetaActor(const NActors::TActorId& runScriptActorId, const TString& database, const TString& executionId, const TString& serializedMeta);
NActors::IActor* CreateSaveScriptExecutionResultActor(const NActors::TActorId& runScriptActorId, const TString& database, const TString& executionId, i32 resultSetId, TInstant expireAt, i64 firstRow, std::vector<TString>&& serializedRows);
diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp b/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
index 9cf871e3030..cb997c85fc5 100644
--- a/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
+++ b/ydb/core/kqp/proxy_service/kqp_script_executions_ut.cpp
@@ -108,29 +108,8 @@ struct TScriptExecutionsYdbSetup {
return reply;
}
-public:
- TPortManager PortManager;
- ui16 MsgBusPort = 0;
- ui16 GrpcPort = 0;
- THolder<Tests::TServerSettings> ServerSettings;
- THolder<Tests::TServer> Server;
- THolder<Tests::TClient> Client;
- THolder<NYdb::TDriver> YdbDriver;
- THolder<NYdb::NTable::TTableClient> TableClient;
- THolder<NYdb::NTable::TSession> TableClientSession;
-};
-
-}
-
-Y_UNIT_TEST_SUITE(ScriptExecutionsTest) {
- Y_UNIT_TEST(RunCheckLeaseStatus) {
- TScriptExecutionsYdbSetup ydb;
-
- const TString executionId = ydb.CreateQueryInDb();
- UNIT_ASSERT(executionId);
- const TInstant startLeaseTime = TInstant::Now();
- auto checkLeaseExistance = [&](bool expectedExistance, TMaybe<i32> expectedStatus) {
- TStringBuilder sql;
+ void CheckLeaseExistance(const TString& executionId, bool expectedExistance, TMaybe<i32> expectedStatus) {
+ TStringBuilder sql;
sql <<
R"(
SELECT COUNT(*)
@@ -141,6 +120,7 @@ Y_UNIT_TEST_SUITE(ScriptExecutionsTest) {
FROM `.metadata/script_executions`
WHERE database = $database AND execution_id = $execution_id;
)";
+
NYdb::TParamsBuilder params;
params
.AddParam("$database")
@@ -149,29 +129,105 @@ Y_UNIT_TEST_SUITE(ScriptExecutionsTest) {
.AddParam("$execution_id")
.Utf8(executionId)
.Build();
- auto result = ydb.TableClientSession->ExecuteDataQuery(sql, NYdb::NTable::TTxControl::BeginTx().CommitTx(), params.Build()).ExtractValueSync();
+
+ auto result = TableClientSession->ExecuteDataQuery(sql, NYdb::NTable::TTxControl::BeginTx().CommitTx(), params.Build()).ExtractValueSync();
UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+
NYdb::TResultSetParser rs1 = result.GetResultSetParser(0);
UNIT_ASSERT(rs1.TryNextRow());
+
auto count = rs1.ColumnParser(0).GetUint64();
UNIT_ASSERT_VALUES_EQUAL(count, expectedExistance ? 1 : 0);
NYdb::TResultSetParser rs2 = result.GetResultSetParser(1);
UNIT_ASSERT(rs2.TryNextRow());
+
UNIT_ASSERT_VALUES_EQUAL(rs2.ColumnParser("operation_status").GetOptionalInt32(), expectedStatus);
- };
- checkLeaseExistance(true, Nothing());
+ }
+
+ THolder<TEvScriptLeaseUpdateResponse> UpdateLease(const TString& executionId, TDuration leaseDuration) {
+ GetRuntime()->Register(CreateScriptLeaseUpdateActor(GetRuntime()->AllocateEdgeActor(), TestDatabase, executionId, leaseDuration));
+ auto reply = GetRuntime()->GrabEdgeEvent<TEvScriptLeaseUpdateResponse>();
+
+ UNIT_ASSERT(reply != nullptr);
+ return reply;
+ }
+
+public:
+ TPortManager PortManager;
+ ui16 MsgBusPort = 0;
+ ui16 GrpcPort = 0;
+ THolder<Tests::TServerSettings> ServerSettings;
+ THolder<Tests::TServer> Server;
+ THolder<Tests::TClient> Client;
+ THolder<NYdb::TDriver> YdbDriver;
+ THolder<NYdb::NTable::TTableClient> TableClient;
+ THolder<NYdb::NTable::TSession> TableClientSession;
+};
+
+}
+
+Y_UNIT_TEST_SUITE(ScriptExecutionsTest) {
+ Y_UNIT_TEST(RunCheckLeaseStatus) {
+ TScriptExecutionsYdbSetup ydb;
+
+ const TString executionId = ydb.CreateQueryInDb();
+ UNIT_ASSERT(executionId);
+ const TInstant startLeaseTime = TInstant::Now();
+ ydb.CheckLeaseExistance(executionId, true, Nothing());
auto checkResult1 = ydb.CheckLeaseStatus(executionId);
const TDuration checkTime = TInstant::Now() - startLeaseTime;
if (checkTime < TestLeaseDuration) {
UNIT_ASSERT_VALUES_EQUAL(checkResult1->Get()->OperationStatus, Nothing());
- checkLeaseExistance(true, Nothing());
+ ydb.CheckLeaseExistance(executionId, true, Nothing());
SleepUntil(startLeaseTime + TestLeaseDuration);
}
auto checkResult2 = ydb.CheckLeaseStatus(executionId);
UNIT_ASSERT_VALUES_EQUAL(checkResult2->Get()->OperationStatus, Ydb::StatusIds::ABORTED);
- checkLeaseExistance(false, Ydb::StatusIds::ABORTED);
+ ydb.CheckLeaseExistance(executionId, false, Ydb::StatusIds::ABORTED);
+ }
+
+ Y_UNIT_TEST(UpdatesLeaseAfterExpiring) {
+ TScriptExecutionsYdbSetup ydb;
+
+ const TString executionId = ydb.CreateQueryInDb();
+ UNIT_ASSERT(executionId);
+
+ TInstant startLeaseTime = TInstant::Now();
+
+ ydb.CheckLeaseExistance(executionId, true, Nothing());
+ SleepUntil(startLeaseTime + TestLeaseDuration);
+
+ startLeaseTime = TInstant::Now();
+ TDuration leaseDuration = TDuration::Seconds(10);
+ auto updateResponse = ydb.UpdateLease(executionId, leaseDuration);
+ UNIT_ASSERT_C(updateResponse->Status == Ydb::StatusIds::SUCCESS, updateResponse->Issues.ToString());
+ UNIT_ASSERT(updateResponse->ExecutionEntryExists);
+
+ ydb.CheckLeaseExistance(executionId, true, Nothing());
+ auto checkResult = ydb.CheckLeaseStatus(executionId);
+
+ if (TInstant::Now() - startLeaseTime < leaseDuration) {
+ UNIT_ASSERT_VALUES_EQUAL(checkResult->Get()->OperationStatus, Nothing());
+ }
+ }
+
+ Y_UNIT_TEST(AttemptToUpdateDeletedLease) {
+ TScriptExecutionsYdbSetup ydb;
+
+ const TString executionId = ydb.CreateQueryInDb();
+ UNIT_ASSERT(executionId);
+ ydb.CheckLeaseExistance(executionId, true, Nothing());
+
+ Sleep(TestLeaseDuration);
+
+ auto checkResult = ydb.CheckLeaseStatus(executionId);
+ UNIT_ASSERT_VALUES_EQUAL(checkResult->Get()->OperationStatus, Ydb::StatusIds::ABORTED);
+ ydb.CheckLeaseExistance(executionId, false, Ydb::StatusIds::ABORTED);
+
+ auto updateResponse = ydb.UpdateLease(executionId, TestLeaseDuration);
+ UNIT_ASSERT(!updateResponse->ExecutionEntryExists);
}
}
} // namespace NKikimr::NKqp
diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt
index 6361e9f8d40..2d9b36b906f 100644
--- a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-kqp-proxy_service-ut PUBLIC
library-cpp-cpuid_check
cpp-testing-unittest_main
core-kqp-proxy_service
+ core-kqp-run_script_actor
kqp-ut-common
yql-sql-pg_dummy
client-draft-ydb_query
diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt
index 5d98a958e97..1207f009f12 100644
--- a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-kqp-proxy_service-ut PUBLIC
yutil
cpp-testing-unittest_main
core-kqp-proxy_service
+ core-kqp-run_script_actor
kqp-ut-common
yql-sql-pg_dummy
client-draft-ydb_query
diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt
index eb755cfbaf8..58b86600408 100644
--- a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-kqp-proxy_service-ut PUBLIC
library-cpp-cpuid_check
cpp-testing-unittest_main
core-kqp-proxy_service
+ core-kqp-run_script_actor
kqp-ut-common
yql-sql-pg_dummy
client-draft-ydb_query
diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt
index d2ffaaf4d26..acd63e44e89 100644
--- a/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-kqp-proxy_service-ut PUBLIC
library-cpp-cpuid_check
cpp-testing-unittest_main
core-kqp-proxy_service
+ core-kqp-run_script_actor
kqp-ut-common
yql-sql-pg_dummy
client-draft-ydb_query
diff --git a/ydb/core/kqp/proxy_service/ut/ya.make b/ydb/core/kqp/proxy_service/ut/ya.make
index a2a8338a00b..76c4e7fa6f1 100644
--- a/ydb/core/kqp/proxy_service/ut/ya.make
+++ b/ydb/core/kqp/proxy_service/ut/ya.make
@@ -10,6 +10,7 @@ SRCS(
)
PEERDIR(
+ ydb/core/kqp/run_script_actor
ydb/core/kqp/proxy_service
ydb/core/kqp/ut/common
ydb/library/yql/sql/pg_dummy
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt
index 3c2be21b07d..dc4d457a24b 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.darwin-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-add_subdirectory(ut)
add_library(core-kqp-run_script_actor)
target_compile_options(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt
index b4e8d475923..64bce9401b0 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.linux-aarch64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-add_subdirectory(ut)
add_library(core-kqp-run_script_actor)
target_compile_options(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt
index b4e8d475923..64bce9401b0 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.linux-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-add_subdirectory(ut)
add_library(core-kqp-run_script_actor)
target_compile_options(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt
index 3c2be21b07d..dc4d457a24b 100644
--- a/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/run_script_actor/CMakeLists.windows-x86_64.txt
@@ -6,7 +6,6 @@
# original buildsystem will not be accepted.
-add_subdirectory(ut)
add_library(core-kqp-run_script_actor)
target_compile_options(core-kqp-run_script_actor PRIVATE
diff --git a/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp b/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
index a79f4531343..9814c706aad 100644
--- a/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
+++ b/ydb/core/kqp/run_script_actor/kqp_run_script_actor.cpp
@@ -42,6 +42,12 @@ class TRunScriptActor : public NActors::TActorBootstrapped<TRunScriptActor> {
Finishing,
Finished,
};
+
+ enum EWakeUp {
+ RunEvent,
+ UpdateLeaseEvent,
+ };
+
public:
TRunScriptActor(const TString& executionId, const NKikimrKqp::TEvQueryRequest& request, const TString& database, ui64 leaseGeneration, TDuration leaseDuration)
: ExecutionId(executionId)
@@ -54,7 +60,6 @@ public:
static constexpr char ActorName[] = "KQP_RUN_SCRIPT_ACTOR";
void Bootstrap() {
- Schedule(LeaseDuration / LEASE_UPDATE_FREQUENCY, new NActors::TEvents::TEvWakeup(1));
Become(&TRunScriptActor::StateFunc);
}
@@ -130,27 +135,56 @@ private:
// TODO: remove this after there will be a normal way to store results and generate execution id
void Handle(NActors::TEvents::TEvWakeup::TPtr& ev) {
- if (ev->Get()->Tag == 1) {
- if (!IsLeaseUpdateRunning) {
- RegisterWithSameMailbox(CreateScriptLeaseUpdateActor(SelfId(), Database, ExecutionId, TInstant::Now() + LeaseDuration));
- IsLeaseUpdateRunning = true;
+ switch (ev->Get()->Tag) {
+ case EWakeUp::RunEvent:
+ Schedule(LeaseDuration / LEASE_UPDATE_FREQUENCY, new NActors::TEvents::TEvWakeup(EWakeUp::UpdateLeaseEvent));
+ RunState = ERunState::Running;
+ CreateSession();
+ break;
+
+ case EWakeUp::UpdateLeaseEvent:
+ if (RunState == ERunState::Cancelled || RunState == ERunState::Cancelling || RunState == ERunState::Finished || RunState == ERunState::Finishing) {
+ break;
}
- Schedule(LeaseDuration / LEASE_UPDATE_FREQUENCY, new NActors::TEvents::TEvWakeup(1));
+ if (!LeaseUpdateQueryRunning && !FinalStatusIsSaved) {
+ Register(CreateScriptLeaseUpdateActor(SelfId(), Database, ExecutionId, LeaseDuration));
+ LeaseUpdateQueryRunning = true;
+ }
+ Schedule(LeaseDuration / LEASE_UPDATE_FREQUENCY, new NActors::TEvents::TEvWakeup(EWakeUp::UpdateLeaseEvent));
+ break;
+ }
+ }
+
+ void RunScriptExecutionFinisher() {
+ if (!FinalStatusIsSaved) {
+ Register(CreateScriptExecutionFinisher(ExecutionId, Database, LeaseGeneration, Status, GetExecStatusFromStatusCode(Status),
+ Issues, std::move(QueryPlan)));
return;
}
+
+ RunState = ERunState::Finished;
- if (RunState == ERunState::Created) {
- RunState = ERunState::Running;
- CreateSession();
+ for (auto& req : CancelRequests) {
+ Send(req->Sender, new TEvKqp::TEvCancelScriptExecutionResponse(Ydb::StatusIds::PRECONDITION_FAILED, "Already finished"));
}
+ CancelRequests.clear();
}
void Handle(TEvScriptLeaseUpdateResponse::TPtr& ev) {
- if (ev->Get()->Status != Ydb::StatusIds::SUCCESS) {
+ LeaseUpdateQueryRunning = false;
+
+ if (!ev->Get()->ExecutionEntryExists) {
+ FinalStatusIsSaved = true;
+ if (RunState == ERunState::Running) {
+ CancelRunningQuery();
+ }
+ }
+
+ if (FinishAfterLeaseUpdate) {
+ RunScriptExecutionFinisher();
+ } else if (IsExecuting() && ev->Get()->Status != Ydb::StatusIds::SUCCESS) {
Finish(ev->Get()->Status);
- } else {
- IsLeaseUpdateRunning = false;
}
}
@@ -372,7 +406,7 @@ private:
Status = ev->Get()->Status;
Issues.AddIssues(ev->Get()->Issues);
}
- CheckSaveInflight();
+ CheckInflight();
}
void Handle(TEvSaveScriptResultFinished::TPtr& ev) {
@@ -381,7 +415,7 @@ private:
Status = ev->Get()->Status;
Issues.AddIssues(ev->Get()->Issues);
}
- CheckSaveInflight();
+ CheckInflight();
}
static Ydb::Query::ExecStatus GetExecStatusFromStatusCode(Ydb::StatusIds::StatusCode status) {
@@ -395,14 +429,18 @@ private:
}
- void CheckSaveInflight() {
+ void CheckInflight() {
if (Status == Ydb::StatusIds::STATUS_CODE_UNSPECIFIED || (Status == Ydb::StatusIds::SUCCESS && RunState == ERunState::Finishing && (SaveResultMetaInflight || SaveResultInflight))) {
// waiting for script completion
return;
}
- Register(CreateScriptExecutionFinisher(ExecutionId, Database, LeaseGeneration, Status, GetExecStatusFromStatusCode(Status),
- Issues, std::move(QueryPlan)));
+ if (!LeaseUpdateQueryRunning) {
+ RunScriptExecutionFinisher();
+ } else {
+ FinishAfterLeaseUpdate = true;
+ }
+
if (RunState == ERunState::Cancelling) {
Issues.AddIssue("Script execution is cancelled");
}
@@ -419,7 +457,7 @@ private:
SaveResultMeta();
SaveResultMetaInflight++;
} else {
- CheckSaveInflight();
+ CheckInflight();
}
}
@@ -442,7 +480,9 @@ private:
const ui64 LeaseGeneration;
const TDuration LeaseDuration;
TString SessionId;
- bool IsLeaseUpdateRunning = false;
+ bool LeaseUpdateQueryRunning = false;
+ bool FinalStatusIsSaved = false;
+ bool FinishAfterLeaseUpdate = false;
ERunState RunState = ERunState::Created;
std::forward_list<TEvKqp::TEvCancelScriptExecutionRequest::TPtr> CancelRequests;
diff --git a/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp b/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp
deleted file mode 100644
index c1348543f33..00000000000
--- a/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-#include "kqp_run_script_actor.h"
-
-#include <ydb/core/kqp/proxy_service/kqp_script_executions.h>
-#include <ydb/core/kqp/proxy_service/kqp_script_executions_impl.h>
-
-#include <ydb/core/testlib/test_client.h>
-#include <ydb/core/testlib/basics/appdata.h>
-#include <ydb/services/ydb/ydb_common_ut.h>
-#include <ydb/public/sdk/cpp/client/ydb_driver/driver.h>
-#include <ydb/public/sdk/cpp/client/ydb_table/table.h>
-
-#include <library/cpp/actors/interconnect/interconnect_impl.h>
-
-namespace NKikimr::NKqp {
-
-using namespace Tests;
-using namespace NSchemeShard;
-
-namespace {
-
-constexpr TDuration TestLeaseDuration = TDuration::Seconds(1);
-const TString TestDatabase = "test_db";
-
-struct TScriptExecutionsYdbSetup {
- TScriptExecutionsYdbSetup() {
- Init();
- }
-
- void Init() {
- MsgBusPort = PortManager.GetPort(2134);
- GrpcPort = PortManager.GetPort(2135);
- ServerSettings = MakeHolder<Tests::TServerSettings>(MsgBusPort);
- ServerSettings->SetEnableScriptExecutionOperations(true);
- ServerSettings->SetGrpcPort(GrpcPort);
- Server = MakeHolder<Tests::TServer>(*ServerSettings);
- Client = MakeHolder<Tests::TClient>(*ServerSettings);
-
- // Logging
- GetRuntime()->SetLogPriority(NKikimrServices::KQP_PROXY, NActors::NLog::PRI_DEBUG);
- Server->EnableGRpc(GrpcPort);
- Client->InitRootScheme();
-
- WaitInitScriptExecutionsTables();
-
- // Init sdk
- NYdb::TDriverConfig driverCfg;
- driverCfg
- .SetEndpoint(TStringBuilder() << "localhost:" << GrpcPort)
- .SetDatabase(Tests::TestDomainName);
- YdbDriver = MakeHolder<NYdb::TDriver>(driverCfg);
- TableClient = MakeHolder<NYdb::NTable::TTableClient>(*YdbDriver);
- auto createSessionResult = TableClient->CreateSession().ExtractValueSync();
- UNIT_ASSERT_C(createSessionResult.IsSuccess(), createSessionResult.GetIssues().ToString());
- TableClientSession = MakeHolder<NYdb::NTable::TSession>(createSessionResult.GetSession());
- }
-
- TTestActorRuntime* GetRuntime() {
- return Server->GetRuntime();
- }
-
- void WaitInitScriptExecutionsTables() {
- while (!RunSelect42Script()) {
- Sleep(TDuration::MilliSeconds(10));
- }
- }
-
- bool RunSelect42Script(ui32 node = 0) {
- TActorId edgeActor = GetRuntime()->AllocateEdgeActor(node);
-
- TActorId kqpProxy = MakeKqpProxyID(GetRuntime()->GetNodeId(node));
-
- auto ev = MakeHolder<TEvKqp::TEvScriptRequest>();
- auto& req = *ev->Record.MutableRequest();
- req.SetQuery("SELECT 42");
- req.SetType(NKikimrKqp::QUERY_TYPE_SQL_GENERIC_SCRIPT);
- req.SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
- req.SetDatabase(ServerSettings->DomainName);
-
- GetRuntime()->Send(new IEventHandle(kqpProxy, edgeActor, ev.Release()), node);
-
- auto reply = GetRuntime()->GrabEdgeEvent<TEvKqp::TEvScriptResponse>(edgeActor);
- Ydb::StatusIds::StatusCode status = reply->Get()->Status;
- return status == Ydb::StatusIds::SUCCESS;
- }
-
- // Creates query in db. Returns execution id
- TString CreateQueryInDb(const TString& query = "SELECT 42", TDuration leaseDuration = TestLeaseDuration) {
- TString executionId = CreateGuidAsString();
- NKikimrKqp::TEvQueryRequest req;
- req.MutableRequest()->SetDatabase(TestDatabase);
- req.MutableRequest()->SetQuery(query);
- req.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
- const ui32 node = 0;
- TActorId edgeActor = GetRuntime()->AllocateEdgeActor(node);
- GetRuntime()->Register(NPrivate::CreateCreateScriptOperationQueryActor(executionId, NActors::TActorId(), req, leaseDuration), 0, 0, TMailboxType::Simple, 0, edgeActor);
-
- auto reply = GetRuntime()->GrabEdgeEvent<NPrivate::TEvPrivate::TEvCreateScriptOperationResponse>(edgeActor);
- UNIT_ASSERT(reply->Get()->Status == Ydb::StatusIds::SUCCESS);
- UNIT_ASSERT_VALUES_EQUAL(executionId, reply->Get()->ExecutionId);
- return reply->Get()->ExecutionId;
- }
-
- NPrivate::TEvPrivate::TEvLeaseCheckResult::TPtr CheckLeaseStatus(const TString& executionId) {
- const ui32 node = 0;
- TActorId edgeActor = GetRuntime()->AllocateEdgeActor(node);
- GetRuntime()->Register(NPrivate::CreateCheckLeaseStatusActor(TestDatabase, executionId), 0, 0, TMailboxType::Simple, 0, edgeActor);
-
- auto reply = GetRuntime()->GrabEdgeEvent<NPrivate::TEvPrivate::TEvLeaseCheckResult>(edgeActor);
- UNIT_ASSERT(reply->Get()->Status == Ydb::StatusIds::SUCCESS);
- return reply;
- }
-
-public:
- TPortManager PortManager;
- ui16 MsgBusPort = 0;
- ui16 GrpcPort = 0;
- THolder<Tests::TServerSettings> ServerSettings;
- THolder<Tests::TServer> Server;
- THolder<Tests::TClient> Client;
- THolder<NYdb::TDriver> YdbDriver;
- THolder<NYdb::NTable::TTableClient> TableClient;
- THolder<NYdb::NTable::TSession> TableClientSession;
-};
-
-}
-
-Y_UNIT_TEST_SUITE(RunScriptActorTest) {
- Y_UNIT_TEST(CheckLeaseUpdater) {
- TScriptExecutionsYdbSetup ydb;
-
- const TString executionId = ydb.CreateQueryInDb();
- UNIT_ASSERT(executionId);
-
- const TInstant startLeaseTime = TInstant::Now();
-
- auto checkLeaseExistance = [&](bool expectedExistance, TMaybe<i32> expectedStatus) {
- TStringBuilder sql;
- sql <<
- R"(
- SELECT COUNT(*)
- FROM `.metadata/script_execution_leases`
- WHERE database = $database AND execution_id = $execution_id;
-
- SELECT operation_status
- FROM `.metadata/script_executions`
- WHERE database = $database AND execution_id = $execution_id;
- )";
-
- NYdb::TParamsBuilder params;
- params
- .AddParam("$database")
- .Utf8(TestDatabase)
- .Build()
- .AddParam("$execution_id")
- .Utf8(executionId)
- .Build();
-
- auto result = ydb.TableClientSession->ExecuteDataQuery(sql, NYdb::NTable::TTxControl::BeginTx().CommitTx(), params.Build()).ExtractValueSync();
- UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
-
- NYdb::TResultSetParser rs1 = result.GetResultSetParser(0);
- UNIT_ASSERT(rs1.TryNextRow());
-
- auto count = rs1.ColumnParser(0).GetUint64();
- UNIT_ASSERT_VALUES_EQUAL(count, expectedExistance ? 1 : 0);
-
- NYdb::TResultSetParser rs2 = result.GetResultSetParser(1);
- UNIT_ASSERT(rs2.TryNextRow());
-
- UNIT_ASSERT_VALUES_EQUAL(rs2.ColumnParser("operation_status").GetOptionalInt32(), expectedStatus);
- };
-
- checkLeaseExistance(true, Nothing());
- auto checkResult1 = ydb.CheckLeaseStatus(executionId);
-
- const TDuration checkTime = TInstant::Now() - startLeaseTime;
- if (checkTime < TestLeaseDuration) {
- UNIT_ASSERT_VALUES_EQUAL(checkResult1->Get()->OperationStatus, Nothing());
- checkLeaseExistance(true, Nothing());
- SleepUntil(startLeaseTime + TestLeaseDuration);
- }
-
- TDuration maximalWaitTime = TDuration::Seconds(10);
- ydb.GetRuntime()->Register(CreateScriptLeaseUpdateActor(ydb.GetRuntime()->AllocateEdgeActor(), TestDatabase, executionId, TInstant::Now() + 2 * maximalWaitTime));
- auto updateResponse = ydb.GetRuntime()->GrabEdgeEvent<TEvScriptLeaseUpdateResponse>(maximalWaitTime);
-
- if (updateResponse != nullptr) {
- UNIT_ASSERT_C(updateResponse->Status == Ydb::StatusIds::SUCCESS, updateResponse->Issues.ToString());
-
- auto checkResult2 = ydb.CheckLeaseStatus(executionId);
- UNIT_ASSERT_VALUES_EQUAL(checkResult2->Get()->OperationStatus, Nothing());
- checkLeaseExistance(true, Nothing());
- }
- }
-
- Y_UNIT_TEST(CheckRunScriptActorLeaseUpdater) {
- TScriptExecutionsYdbSetup ydb;
-
- const TString executionId = ydb.CreateQueryInDb();
- UNIT_ASSERT(executionId);
-
- auto checkLeaseExistance = [&](bool expectedExistance, TMaybe<i32> expectedStatus) {
- TStringBuilder sql;
- sql <<
- R"(
- SELECT COUNT(*)
- FROM `.metadata/script_execution_leases`
- WHERE database = $database AND execution_id = $execution_id;
-
- SELECT operation_status
- FROM `.metadata/script_executions`
- WHERE database = $database AND execution_id = $execution_id;
- )";
-
- NYdb::TParamsBuilder params;
- params
- .AddParam("$database")
- .Utf8(TestDatabase)
- .Build()
- .AddParam("$execution_id")
- .Utf8(executionId)
- .Build();
-
- auto result = ydb.TableClientSession->ExecuteDataQuery(sql, NYdb::NTable::TTxControl::BeginTx().CommitTx(), params.Build()).ExtractValueSync();
- UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
-
- NYdb::TResultSetParser rs1 = result.GetResultSetParser(0);
- UNIT_ASSERT(rs1.TryNextRow());
-
- auto count = rs1.ColumnParser(0).GetUint64();
- UNIT_ASSERT_VALUES_EQUAL(count, expectedExistance ? 1 : 0);
-
- NYdb::TResultSetParser rs2 = result.GetResultSetParser(1);
- UNIT_ASSERT(rs2.TryNextRow());
-
- UNIT_ASSERT_VALUES_EQUAL(rs2.ColumnParser("operation_status").GetOptionalInt32(), expectedStatus);
- };
-
- checkLeaseExistance(true, Nothing());
- ydb.GetRuntime()->Register(CreateRunScriptActor(executionId, NKikimrKqp::TEvQueryRequest(), TestDatabase, 1, TestLeaseDuration));
-
- const ui32 numberOfTests = 3;
- for (ui32 i = 0; i < numberOfTests; ++i) {
- Sleep(TestLeaseDuration);
-
- auto checkResult = ydb.CheckLeaseStatus(executionId);
- UNIT_ASSERT_VALUES_EQUAL(checkResult->Get()->OperationStatus, Nothing());
- checkLeaseExistance(true, Nothing());
- }
- }
-}
-
-}
diff --git a/ydb/core/kqp/run_script_actor/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/run_script_actor/ut/CMakeLists.darwin-x86_64.txt
deleted file mode 100644
index abd531632f4..00000000000
--- a/ydb/core/kqp/run_script_actor/ut/CMakeLists.darwin-x86_64.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-
-add_executable(ydb-core-kqp-run_script_actor-ut)
-target_compile_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -DUSE_CURRENT_UDF_ABI_VERSION
-)
-target_include_directories(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor
-)
-target_link_libraries(ydb-core-kqp-run_script_actor-ut PUBLIC
- contrib-libs-cxxsupp
- yutil
- library-cpp-cpuid_check
- cpp-testing-unittest_main
- core-kqp-run_script_actor
- cpp-threading-local_executor
- ydb-core-kqp
- kqp-ut-common
- yql-sql-pg
- yql-parser-pg_wrapper
- cpp-client-ydb_operation
- client-ydb_types-operation
-)
-target_link_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -Wl,-platform_version,macos,11.0,11.0
- -fPIC
- -fPIC
- -framework
- CoreFoundation
-)
-target_sources(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp
-)
-set_property(
- TARGET
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- SPLIT_FACTOR
- 50
-)
-add_yunittest(
- NAME
- ydb-core-kqp-run_script_actor-ut
- TEST_TARGET
- ydb-core-kqp-run_script_actor-ut
- TEST_ARG
- --print-before-suite
- --print-before-test
- --fork-tests
- --print-times
- --show-fails
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- LABELS
- MEDIUM
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- PROCESSORS
- 1
-)
-target_allocator(ydb-core-kqp-run_script_actor-ut
- system_allocator
-)
-vcs_info(ydb-core-kqp-run_script_actor-ut)
diff --git a/ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-aarch64.txt
deleted file mode 100644
index da508d9d690..00000000000
--- a/ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-aarch64.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-
-add_executable(ydb-core-kqp-run_script_actor-ut)
-target_compile_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -DUSE_CURRENT_UDF_ABI_VERSION
-)
-target_include_directories(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor
-)
-target_link_libraries(ydb-core-kqp-run_script_actor-ut PUBLIC
- contrib-libs-linux-headers
- contrib-libs-cxxsupp
- yutil
- cpp-testing-unittest_main
- core-kqp-run_script_actor
- cpp-threading-local_executor
- ydb-core-kqp
- kqp-ut-common
- yql-sql-pg
- yql-parser-pg_wrapper
- cpp-client-ydb_operation
- client-ydb_types-operation
-)
-target_link_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -ldl
- -lrt
- -Wl,--no-as-needed
- -fPIC
- -fPIC
- -lpthread
- -lrt
- -ldl
-)
-target_sources(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp
-)
-set_property(
- TARGET
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- SPLIT_FACTOR
- 50
-)
-add_yunittest(
- NAME
- ydb-core-kqp-run_script_actor-ut
- TEST_TARGET
- ydb-core-kqp-run_script_actor-ut
- TEST_ARG
- --print-before-suite
- --print-before-test
- --fork-tests
- --print-times
- --show-fails
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- LABELS
- MEDIUM
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- PROCESSORS
- 1
-)
-target_allocator(ydb-core-kqp-run_script_actor-ut
- cpp-malloc-jemalloc
-)
-vcs_info(ydb-core-kqp-run_script_actor-ut)
diff --git a/ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-x86_64.txt
deleted file mode 100644
index d20b2bde7e3..00000000000
--- a/ydb/core/kqp/run_script_actor/ut/CMakeLists.linux-x86_64.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-
-add_executable(ydb-core-kqp-run_script_actor-ut)
-target_compile_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -DUSE_CURRENT_UDF_ABI_VERSION
-)
-target_include_directories(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor
-)
-target_link_libraries(ydb-core-kqp-run_script_actor-ut PUBLIC
- contrib-libs-linux-headers
- contrib-libs-cxxsupp
- yutil
- library-cpp-cpuid_check
- cpp-testing-unittest_main
- core-kqp-run_script_actor
- cpp-threading-local_executor
- ydb-core-kqp
- kqp-ut-common
- yql-sql-pg
- yql-parser-pg_wrapper
- cpp-client-ydb_operation
- client-ydb_types-operation
-)
-target_link_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -ldl
- -lrt
- -Wl,--no-as-needed
- -fPIC
- -fPIC
- -lpthread
- -lrt
- -ldl
-)
-target_sources(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp
-)
-set_property(
- TARGET
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- SPLIT_FACTOR
- 50
-)
-add_yunittest(
- NAME
- ydb-core-kqp-run_script_actor-ut
- TEST_TARGET
- ydb-core-kqp-run_script_actor-ut
- TEST_ARG
- --print-before-suite
- --print-before-test
- --fork-tests
- --print-times
- --show-fails
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- LABELS
- MEDIUM
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- PROCESSORS
- 1
-)
-target_allocator(ydb-core-kqp-run_script_actor-ut
- cpp-malloc-tcmalloc
- libs-tcmalloc-no_percpu_cache
-)
-vcs_info(ydb-core-kqp-run_script_actor-ut)
diff --git a/ydb/core/kqp/run_script_actor/ut/CMakeLists.txt b/ydb/core/kqp/run_script_actor/ut/CMakeLists.txt
deleted file mode 100644
index f8b31df0c11..00000000000
--- a/ydb/core/kqp/run_script_actor/ut/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
- include(CMakeLists.linux-aarch64.txt)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
- include(CMakeLists.darwin-x86_64.txt)
-elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
- include(CMakeLists.windows-x86_64.txt)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
- include(CMakeLists.linux-x86_64.txt)
-endif()
diff --git a/ydb/core/kqp/run_script_actor/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/run_script_actor/ut/CMakeLists.windows-x86_64.txt
deleted file mode 100644
index ade7244716e..00000000000
--- a/ydb/core/kqp/run_script_actor/ut/CMakeLists.windows-x86_64.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-
-add_executable(ydb-core-kqp-run_script_actor-ut)
-target_compile_options(ydb-core-kqp-run_script_actor-ut PRIVATE
- -DUSE_CURRENT_UDF_ABI_VERSION
-)
-target_include_directories(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor
-)
-target_link_libraries(ydb-core-kqp-run_script_actor-ut PUBLIC
- contrib-libs-cxxsupp
- yutil
- library-cpp-cpuid_check
- cpp-testing-unittest_main
- core-kqp-run_script_actor
- cpp-threading-local_executor
- ydb-core-kqp
- kqp-ut-common
- yql-sql-pg
- yql-parser-pg_wrapper
- cpp-client-ydb_operation
- client-ydb_types-operation
-)
-target_sources(ydb-core-kqp-run_script_actor-ut PRIVATE
- ${CMAKE_SOURCE_DIR}/ydb/core/kqp/run_script_actor/kqp_run_script_actor_ut.cpp
-)
-set_property(
- TARGET
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- SPLIT_FACTOR
- 50
-)
-add_yunittest(
- NAME
- ydb-core-kqp-run_script_actor-ut
- TEST_TARGET
- ydb-core-kqp-run_script_actor-ut
- TEST_ARG
- --print-before-suite
- --print-before-test
- --fork-tests
- --print-times
- --show-fails
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- LABELS
- MEDIUM
-)
-set_yunittest_property(
- TEST
- ydb-core-kqp-run_script_actor-ut
- PROPERTY
- PROCESSORS
- 1
-)
-target_allocator(ydb-core-kqp-run_script_actor-ut
- system_allocator
-)
-vcs_info(ydb-core-kqp-run_script_actor-ut)
diff --git a/ydb/core/kqp/run_script_actor/ut/ya.make b/ydb/core/kqp/run_script_actor/ut/ya.make
deleted file mode 100644
index 35dc226aebe..00000000000
--- a/ydb/core/kqp/run_script_actor/ut/ya.make
+++ /dev/null
@@ -1,24 +0,0 @@
-UNITTEST_FOR(ydb/core/kqp/run_script_actor)
-
-FORK_SUBTESTS()
-SPLIT_FACTOR(50)
-
-SIZE(MEDIUM)
-
-SRCS(
- kqp_run_script_actor_ut.cpp
-)
-
-PEERDIR(
- library/cpp/threading/local_executor
- ydb/core/kqp
- ydb/core/kqp/ut/common
- ydb/library/yql/sql/pg
- ydb/library/yql/parser/pg_wrapper
- ydb/public/sdk/cpp/client/ydb_operation
- ydb/public/sdk/cpp/client/ydb_types/operation
-)
-
-YQL_LAST_ABI_VERSION()
-
-END()
diff --git a/ydb/core/kqp/run_script_actor/ya.make b/ydb/core/kqp/run_script_actor/ya.make
index 5ca4b2184fc..46d6a0567db 100644
--- a/ydb/core/kqp/run_script_actor/ya.make
+++ b/ydb/core/kqp/run_script_actor/ya.make
@@ -17,7 +17,3 @@ PEERDIR(
YQL_LAST_ABI_VERSION()
END()
-
-RECURSE_FOR_TESTS(
- ut
-)