diff options
30 files changed, 257 insertions, 231 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 75a91de29de..0e0a2082035 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -63,6 +63,8 @@ /ydb/library/yql/udfs/common/clickhouse/client @ydb-platform/fq /ydb/library/yql/udfs/common/knn @ydb-platform/datashard /ydb/services/fq/ @ydb-platform/fq +/ydb/services/workload_manager @ydb-platform/fq +/ydb/core/resource_pools @ydb-platform/fq /ydb/core/http_proxy @ydb-platform/Topics /ydb/core/kafka_proxy @ydb-platform/Topics diff --git a/.github/config/muted_ya.txt b/.github/config/muted_ya.txt index 248f5e99426..54cd989bd70 100644 --- a/.github/config/muted_ya.txt +++ b/.github/config/muted_ya.txt @@ -1,7 +1,4 @@ ydb/core/blobstorage/dsproxy/ut TBlobStorageProxySequenceTest.TestBlock42PutWithChangingSlowDisk -ydb/core/blobstorage/pdisk/ut RDMA.TestChunkReadWithRdmaAllocatorEncryptedChunks -ydb/core/blobstorage/pdisk/ut RDMA.TestChunkReadWithRdmaAllocatorPlainChunks -ydb/core/blobstorage/pdisk/ut RDMA.TestRcBuf ydb/core/blobstorage/ut_blobstorage BlobPatching.PatchBlock42 ydb/core/blobstorage/ut_blobstorage Get.TestRdmaRegiseredMemory ydb/core/blobstorage/ut_blobstorage NodeDisconnected.BsQueueRetries @@ -35,19 +32,20 @@ ydb/core/kqp/ut/query KqpAnalyzeOperations.AnalyzeOperationsLifecycle ydb/core/kqp/ut/scheme KqpScheme.CreateDropTableMultipleTime ydb/core/load_test/ut GroupWriteTest.SimpleRdma ydb/core/mind/ut TDynamicNameserverTest.OnlyAliveDynamicNodesStaticNodeChangeSubscribers -ydb/core/tx/columnshard/backup/iscan/ut unittest.sole chunk ydb/core/tx/schemeshard/ut_background_cleaning TSchemeshardBackgroundCleaningTest.SchemeshardBackgroundCleaningTestCreateCleanManyTables ydb/core/tx/schemeshard/ut_compaction_reboots SchemeshardForcedCompactionTestReboots.ForceCompactWithIndexCreation[TabletRebootsBucket0] ydb/core/tx/schemeshard/ut_compaction_reboots unittest.[*/*] chunk ydb/library/actors/core/ut TestThreadContextQueueTimestamps.CurrentQueueTimestamps ydb/library/actors/http/ut Http2Integration.Http2UpgradeFrom101 ydb/library/actors/interconnect/ut InterconnectDirectSession.UnregisterRestoresActorSystemDelivery +ydb/library/actors/interconnect/ut InterconnectSessionV2.ActorSystemTeardownIdleSessions ydb/library/actors/interconnect/ut InterconnectSessionV2.FallbackWithoutBufRing ydb/library/actors/interconnect/ut InterconnectSessionV2.LargePayloadRoundTrip ydb/public/sdk/cpp/tests/integration/topic gtest.[*/*] chunk ydb/public/sdk/cpp/tests/integration/topic/with_direct_read gtest.[*/*] chunk ydb/services/persqueue_v1/ut TPersQueueTest.TopicServiceCommitOffset ydb/services/persqueue_v1/ut unittest.[*/*] chunk +ydb/tests/compatibility/common test_system_views.py.TestSystemViewsRegistry.test_domain_sys_dir[restart_stable-26-3-1_to_prestable-26-4] ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_prestable-26-4_to_prestable-26-4] ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_prestable-26-4_to_stable-26-3-1] ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_stable-26-2-1_to_stable-26-3-1] @@ -64,11 +62,11 @@ ydb/tests/compatibility/udf test_datetime2.py.TestDatetime2.test_all[mixed_stabl ydb/tests/fq/streaming py3test.[*/*] chunk ydb/tests/fq/streaming test_streaming.py.TestStreamingInYdb.test_read_topic_shared_reading_limit[False] ydb/tests/functional/blobstorage test_node_warden_cache.py.TestNodeWardenCacheFile.test_cache_file_lifecycle_and_restart -ydb/tests/functional/nbs py3test.sole chunk ydb/tests/functional/nbs test_nbs.py.TestNbs.test_nbs_disk_creation ydb/tests/functional/nbs test_nbs.py.TestNbs.test_nbs_disk_creation_name_with_symbols ydb/tests/functional/nbs test_nbs.py.TestNbs.test_nbs_multiple_disks_creation ydb/tests/functional/query_cache/warmup test_warmup.py.TestCompileCacheViewPeerWarnings.test_peer_scan_warnings_increment_on_dead_peer +ydb/tests/functional/query_cache/warmup test_warmup.py.TestWarmupRestart.test_warmup_basic ydb/tests/functional/security/mon/canonical test_mon_endpoints_auth.py.test[require_healthcheck_authentication-with_schema_grants] ydb/tests/functional/sqs/cloud test_yandex_cloud_mode.py.TestSqsYandexCloudMode.test_dlq_mechanics_in_cloud[fifo] ydb/tests/functional/sqs/migration/compatibility/common ydb.tests.functional.sqs.common.test_queue_counters.py.TestSqsGettingCounters.test_sqs_action_counters @@ -86,7 +84,6 @@ ydb/tests/stress/testshard_workload/tests test_workload.py.TestYdbTestShardWorkl ydb/tests/stress/topic/tests test_workload_topic.py.TestYdbTopicWorkload.test_0 ydb/tests/stress/topic_sqs/tests test_workload.py.TestYdbTopicSqsWorkload.test ydb/tools/mnc/viewer/ut py3test.sole chunk -ydb/tools/mnc/viewer/ut test_cluster_config_validation.py.ClusterConfigSelectionStateTest.test_operations_tab_shows_running_steps_and_final_output ydb/tools/mnc/viewer/ut test_navigation.py.ViewerTabNavigationTest.test_operation_tab_navigation_matches_state_machine ydb/tools/mnc/viewer/ut test_navigation.py.ViewerTabNavigationTest.test_tab_navigation_matches_state_machine_for_core_command_sequences ydb/tools/stress_tool/ut TDeviceTestTool.PDiskTestLogWrite diff --git a/.github/config/muted_ya_asan.txt b/.github/config/muted_ya_asan.txt index ba8f6a44505..f394756449e 100644 --- a/.github/config/muted_ya_asan.txt +++ b/.github/config/muted_ya_asan.txt @@ -1,5 +1,4 @@ ydb/apps/ydb/ut YdbWorkloadTransferTopicToTable.Default_Run -ydb/core/blobstorage/ddisk/ut TDDiskActorPDiskTest.PDiskRestartWithReservedChunks_DDiskZombie_Uring ydb/core/blobstorage/ddisk/ut TDDiskActorTest.LateOutdatedSyncReadResultDoesNotLogUnknownSync ydb/core/blobstorage/ddisk/ut_large TDDiskActorPDiskSyncTest.Large_4Tablets_32VChunks_FullBlocks_16Segments ydb/core/blobstorage/ddisk/ut_large TDDiskActorPDiskSyncTest.Large_4Tablets_32VChunks_FullBlocks_1Segment @@ -46,8 +45,6 @@ ydb/core/blobstorage/ut_blobstorage/ut_replication ReplicationSpace.HugeBlobsWit ydb/core/blobstorage/ut_blobstorage/ut_replication ReplicationSpace.SmallBlobsNoDonor ydb/core/blobstorage/ut_blobstorage/ut_replication ReplicationSpace.SmallBlobsWithDonor ydb/core/blobstorage/ut_blobstorage/ut_replication unittest.[*/*] chunk -ydb/core/blobstorage/ut_blobstorage/ut_restart_pdisk BSCRestartPDisk.RestartOneByOneWithReconnects -ydb/core/blobstorage/ut_blobstorage/ut_restart_pdisk unittest.[*/*] chunk ydb/core/blobstorage/ut_vdisk unittest.[*/*] chunk ydb/core/formats/arrow/accessor/sub_columns/ut SubColumnsSparsedBuilder.BinaryJsonMatchesPlain ydb/core/graph/shard/ut unittest.sole chunk @@ -471,7 +468,6 @@ ydb/core/kqp/ut/indexes/prefixed_vector unittest.[*/*] chunk ydb/core/kqp/ut/join KqpJoinOrder.Chain65Nodes ydb/core/kqp/ut/olap KqpOlapOptimizer.SpecialSliceToOneLayer ydb/core/kqp/ut/olap KqpOlapOptimizer.TilingPlusPlusTtlDeletion -ydb/core/kqp/ut/olap/types KqpOlapJson.BloomMixIndexesOldSyntaxVariants[false,true,1024,0,0,0.5,BLOOM_FILTER] ydb/core/kqp/ut/olap/types KqpOlapJson.QuotedFilterVariants[10,false,1,0,100,0.5] ydb/core/kqp/ut/olap/types KqpOlapJson.SimpleExistsVariants[10,false,0,10,100,0.5] ydb/core/kqp/ut/query KqpLimits.OutOfSpaceYQLUpsertFail @@ -485,8 +481,6 @@ ydb/core/kqp/ut/rbo KqpRboOlap.DisableBlocksOnColumnsLimit ydb/core/kqp/ut/rbo KqpRboOlap.DoubleOutOfRangeInJson ydb/core/kqp/ut/rbo KqpRboOlap.OlapFilterPeephole ydb/core/kqp/ut/rbo KqpRboOlap.PredicatePushdownCastErrors -ydb/core/kqp/ut/rbo KqpRboYql.AggregateKeyColumnsNotLeakedToInputMap -ydb/core/kqp/ut/rbo KqpRboYql.Aggregation-ColumnStore ydb/core/kqp/ut/rbo KqpRboYql.AliasesRenames ydb/core/kqp/ut/rbo KqpRboYql.BasicHashJoin-UseBlockHashJoin ydb/core/kqp/ut/rbo KqpRboYql.ColumnStatistics+ColumnStore @@ -555,7 +549,6 @@ ydb/core/nbs/cloud/blockstore/libs/storage/partition_direct/ut TVChunkTest.Shoul ydb/core/nbs/cloud/blockstore/libs/storage/partition_direct/ut TWriteRequestWithPBufferReplicationTest.ShouldWorkWithMultipleResponsesAndHedge ydb/core/nbs/cloud/blockstore/libs/storage/partition_direct/ut unittest.sole chunk ydb/core/persqueue/pqtablet/partition/mlp/ut TMLPCountersTests.SimpleCounters -ydb/core/persqueue/pqtablet/partition/mlp/ut TMLPCountersTests.SimpleCountersWithKeepMessageOrder ydb/core/persqueue/pqtablet/quota/ut TWriteQuoterTests.WaitMessagesQuota ydb/core/persqueue/pqtablet/quota/ut unittest.sole chunk ydb/core/persqueue/public/describer/ut TDescriberTests.CDC @@ -579,13 +572,11 @@ ydb/core/transfer/ut/column_table unittest.sole chunk ydb/core/transfer/ut/functional Transfer.CheckCommittedOffsetEmptyBatch_Remote ydb/core/transfer/ut/functional Transfer.LocalTopic_BigMessage ydb/core/transfer/ut/large TransferLarge.Transfer100KM_10P_LocalRead_TopicAutoPartitioning -ydb/core/transfer/ut/large TransferLarge.Transfer100KM_10P_RowTable_TopicAutoPartitioning ydb/core/tx/columnshard/backup/async_jobs/ut unittest.sole chunk ydb/core/tx/columnshard/backup/iscan/ut IScan.ShouldRejectParquetExportWithEncryption ydb/core/tx/columnshard/ut_rw TColumnShardTestReadWrite.CompactionSplitGranuleStrKey_PKUtf8 ydb/core/tx/columnshard/ut_rw TColumnShardTestReadWrite.CompactionSplitGranule_PKDatetime ydb/core/tx/columnshard/ut_rw unittest.[*/*] chunk -ydb/core/tx/datashard/build_index/ut TTxDataShardLocalKMeansScan.BuildToBuild_Ranges ydb/core/tx/datashard/build_index/ut TTxDataShardLocalKMeansScan.EmptyEmbeddingSkipped ydb/core/tx/datashard/build_index/ut TTxDataShardLocalKMeansScan.NullEmbedding ydb/core/tx/datashard/build_index/ut TTxDataShardPrefixKMeansScan.BadRequest @@ -625,7 +616,6 @@ ydb/core/tx/datashard/ut_stats DataShardStats.HasSchemaChanges_Families ydb/core/tx/datashard/ut_stats unittest.sole chunk ydb/core/tx/datashard/ut_validate_row_condition unittest.sole chunk ydb/core/tx/schemeshard/ut_background_cleaning TSchemeshardBackgroundCleaningTest.SchemeshardBackgroundCleaningTestCreateCleanManyTables -ydb/core/tx/schemeshard/ut_full_backup unittest.sole chunk ydb/core/tx/schemeshard/ut_login TSchemeShardLoginTest.CheckThatLockedOutParametersIsRestoredFromLocalDb ydb/core/tx/schemeshard/ut_metrics unittest.[*/*] chunk ydb/core/tx/schemeshard/ut_olap TOlap.StoreStatsSmallBlobsVolumeQuota @@ -662,7 +652,6 @@ ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut LocalPartition.Direct ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut LocalPartition.WithoutPartitionWithRestart ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut TxUsage.Sinks_Oltp_WriteToTopic_3_Query ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut TxUsage.Sinks_Oltp_WriteToTopic_3_Table -ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut TxUsage.Sinks_Oltp_WriteToTopics_2_Table ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut TxUsage.WriteToTopic_Demo_27_Query ydb/public/sdk/cpp/src/client/topic/ut/with_direct_read_ut unittest.[*/*] chunk ydb/public/sdk/cpp/tests/integration/bulk_upsert BulkUpsert.RetryOverheadOnHappyPath @@ -692,8 +681,7 @@ ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_ ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_prestable-26-4_to_stable-26-3-1-COLUMN] ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_stable-26-3-1_to_prestable-26-4-COLUMN] ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/common test_system_views.py.TestSystemViewsRegistry.test_domain_sys_dir[restart_stable-26-2-1_to_stable-26-3-1] -ydb/tests/compatibility/common test_user_management.py.TestUserManagementRollingUpgrade.test_user_management[rolling_stable-26-2-1_to_stable-26-3-1] +ydb/tests/compatibility/common test_system_views.py.TestSystemViewsRegistry.test_domain_sys_dir[restart_stable-26-3-1_to_prestable-26-4] ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_prestable-26-4_to_prestable-26-4] ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_prestable-26-4_to_stable-26-3-1] ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_stable-26-2-1_to_stable-26-3-1] @@ -705,48 +693,24 @@ ydb/tests/compatibility/olap test_encoding.py.TestEncoding.test_encoding[rolling ydb/tests/compatibility/result_set_format py3test.[test_result_set_arrow.py */*] chunk ydb/tests/compatibility/streaming test_streaming.py.TestStreamingRestartToAnotherVersion.test_restart_to_another_version[restart_stable-26-3-1_to_stable-26-2-1-False] ydb/tests/compatibility/streaming test_streaming.py.TestStreamingRestartToAnotherVersion.test_restart_to_another_version[restart_stable-26-3-1_to_stable-26-2-1-True] -ydb/tests/compatibility/topics test_kafka_topic.py.TestKafkaTopicMixedClusterFixture.test_workload[mixed_prestable-26-4] ydb/tests/compatibility/topics test_kafka_topic.py.TestKafkaTopicMixedClusterFixture.test_workload[mixed_prestable-26-4_and_stable-26-3-1] ydb/tests/compatibility/topics test_kafka_topic.py.TestKafkaTopicMixedClusterFixture.test_workload[mixed_stable-26-3-1_and_stable-26-2-1] ydb/tests/compatibility/topics test_kafka_topic.py.TestKafkaTopicRestartToAnotherVersion.test_workload[restart_prestable-26-4_to_prestable-26-4] -ydb/tests/compatibility/topics test_kafka_topic.py.TestKafkaTopicRestartToAnotherVersion.test_workload[restart_prestable-26-4_to_stable-26-3-1] ydb/tests/compatibility/topics test_kafka_topic.py.TestKafkaTopicRestartToAnotherVersion.test_workload[restart_stable-26-2-1_to_stable-26-3-1] ydb/tests/compatibility/udf test_datetime2.py.TestDatetime2.test_all[mixed_prestable-26-4_and_stable-26-3-1] ydb/tests/compatibility/udf test_datetime2.py.TestDatetime2.test_all[mixed_stable-26-3-1_and_stable-26-2-1] ydb/tests/datashard/truncate/concurrency py3test.[test_truncate_table_concurrency.py */*] chunk ydb/tests/datashard/truncate/concurrency test_truncate_table_concurrency.py.TestTruncateTableConcurrency.test_truncate_with_concurrent_rw_operations ydb/tests/fq/generic/streaming py3test.sole chunk -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-False-1-1-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-False-1-2-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-False-2-1-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-False-2-2-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-True-1-1-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-True-1-2-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-True-2-1-fq_client0-mvp_external_ydb_endpoint0] -ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-6-True-2-2-fq_client0-mvp_external_ydb_endpoint0] ydb/tests/fq/generic/streaming test_join.py.TestJoinStreaming.test_streamlookup_watermarks[v1-8-False-1-1-fq_client0-mvp_external_ydb_endpoint0] ydb/tests/fq/http_api test_http_api.py.TestHttpApi.test_simple_analytics_query -ydb/tests/fq/s3 test_streaming_join.py.TestStreamingJoin.test_grace_join[v1-client0] -ydb/tests/fq/streaming test_scalar_topic_write.py.TestScalarTopicWriteInYdb.test_mixed_valid_invalid_statements[False] -ydb/tests/fq/streaming test_scalar_topic_write.py.TestScalarTopicWriteInYdb.test_mixed_valid_invalid_statements[True] ydb/tests/fq/streaming test_udfs.py.TestUdfsUsage.test_precompute_recovery[False] ydb/tests/fq/streaming/streaming_large test_cluster_restarts.py.TestStreamingLarge.test_rolling_restart[kikimr0] -ydb/tests/fq/streaming_optimize py3test.[test_sql_negative.py */*] chunk -ydb/tests/fq/streaming_optimize py3test.[test_sql_streaming.py */*] chunk ydb/tests/fq/streaming_optimize py3test.sole chunk ydb/tests/fq/streaming_optimize test_sql_negative.py.test[hopping_window-GroupByHoppingWindowTimeLimitBad-default.txt] ydb/tests/fq/streaming_optimize test_sql_negative.py.test[watermarks-bad_column-default.txt] ydb/tests/fq/streaming_optimize test_sql_streaming.py.test[hop-GroupByHopByStringKey-default.txt] ydb/tests/fq/streaming_optimize test_sql_streaming.py.test[hop-GroupByHopExprKey-default.txt] -ydb/tests/fq/yds test_disposition.py.TestDisposition.test_disposition_fresh[v1-mvp_external_ydb_endpoint0] -ydb/tests/fq/yds test_row_dispatcher.py.TestPqRowDispatcher.test_3_sessions -ydb/tests/fq/yds test_row_dispatcher.py.TestPqRowDispatcher.test_start_new_query -ydb/tests/fq/yds test_watermarks.py.TestWatermarks.test_idle_watermarks[1-no_shared] -ydb/tests/fq/yds test_watermarks.py.TestWatermarks.test_idle_watermarks[1-shared] -ydb/tests/fq/yds test_watermarks.py.TestWatermarks.test_idle_watermarks[2-no_shared] -ydb/tests/fq/yds test_watermarks.py.TestWatermarks.test_idle_watermarks[2-shared] -ydb/tests/fq/yds test_watermarks.py.TestWatermarks.test_watermarks[no_shared] -ydb/tests/fq/yds test_watermarks.py.TestWatermarks.test_watermarks[shared] ydb/tests/fq/yt/kqp_yt_file/part0 py3test.sole chunk ydb/tests/fq/yt/kqp_yt_file/part0 test.py.test[aggregate-group_by_gs_and_having-default.txt] ydb/tests/fq/yt/kqp_yt_file/part1 py3test.sole chunk diff --git a/.github/config/muted_ya_msan.txt b/.github/config/muted_ya_msan.txt index 322615d4946..c67698442af 100644 --- a/.github/config/muted_ya_msan.txt +++ b/.github/config/muted_ya_msan.txt @@ -41,125 +41,22 @@ ydb/library/actors/interconnect/ut Interconnect.RdmaXdcCatchReplayAfterPartialPa ydb/library/actors/interconnect/ut Interconnect.RdmaXdcCatchReplayAfterPartialRdmaRead ydb/library/actors/interconnect/ut Interconnect.RdmaXdcCatchReplayAfterPartialRdmaReadOnPeerSocketClose ydb/library/actors/interconnect/ut Interconnect.SetupRdmaSession -ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_prestable-26-4_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_prestable-26-4_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_stable-26-3-1_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/common test_data_type.py.TestDataType.test_parametrized_data_type[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/common test_system_views.py.TestSystemViewsRegistry.test_domain_sys_dir[restart_stable-26-2-1_to_stable-26-3-1] -ydb/tests/compatibility/common test_user_management.py.TestUserManagementRollingUpgrade.test_user_management[rolling_stable-26-2-1_to_stable-26-3-1] -ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_prestable-26-4_to_prestable-26-4] -ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_prestable-26-4_to_stable-26-3-1] -ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_stable-26-2-1_to_stable-26-3-1] -ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_stable-26-3-1_to_prestable-26-4] -ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_stable-26-3-1_to_stable-26-2-1] -ydb/tests/compatibility/indexes test_bloom_filter_index.py.TestBloomFilterIndex.test_bloom_filter_survives_version_change[restart_stable-26-3-1_to_stable-26-3-1] -ydb/tests/compatibility/result_set_format py3test.[test_result_set_arrow.py */*] chunk -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_column_alias[restart_prestable-26-4_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_column_alias[restart_prestable-26-4_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_column_alias[restart_stable-26-2-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_column_alias[restart_stable-26-3-1_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_column_alias[restart_stable-26-3-1_to_stable-26-2-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_column_alias[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_limit_ordered_columns[restart_prestable-26-4_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_limit_ordered_columns[restart_prestable-26-4_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_limit_ordered_columns[restart_stable-26-2-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_limit_ordered_columns[restart_stable-26-3-1_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_limit_ordered_columns[restart_stable-26-3-1_to_stable-26-2-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_limit_ordered_columns[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_types_mapping[restart_prestable-26-4_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_types_mapping[restart_prestable-26-4_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_types_mapping[restart_stable-26-2-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_types_mapping[restart_stable-26-3-1_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_types_mapping[restart_stable-26-3-1_to_stable-26-2-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_arrow.py.TestResultSetArrow.test_types_mapping[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_column_alias[restart_prestable-26-4_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_column_alias[restart_prestable-26-4_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_column_alias[restart_stable-26-2-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_column_alias[restart_stable-26-3-1_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_column_alias[restart_stable-26-3-1_to_stable-26-2-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_column_alias[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_limit_ordered_columns[restart_prestable-26-4_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_limit_ordered_columns[restart_prestable-26-4_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_limit_ordered_columns[restart_stable-26-2-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_limit_ordered_columns[restart_stable-26-3-1_to_prestable-26-4-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_limit_ordered_columns[restart_stable-26-3-1_to_stable-26-2-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_limit_ordered_columns[restart_stable-26-3-1_to_stable-26-3-1-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_prestable-26-4-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_prestable-26-4_to_stable-26-3-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-2-1_to_stable-26-3-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_prestable-26-4-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-2-1-2-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-0-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-0-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-1-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-1-8388608-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-2-2048-COLUMN] -ydb/tests/compatibility/result_set_format test_result_set_value.py.TestResultSetValue.test_schema_inclusion_mode[restart_stable-26-3-1_to_stable-26-3-1-2-8388608-COLUMN] -ydb/tests/compatibility/streaming test_streaming.py.TestStreamingRestartToAnotherVersion.test_restart_to_another_version[restart_stable-26-3-1_to_stable-26-2-1-False] -ydb/tests/compatibility/streaming test_streaming.py.TestStreamingRestartToAnotherVersion.test_restart_to_another_version[restart_stable-26-3-1_to_stable-26-2-1-True] -ydb/tests/compatibility/udf test_datetime2.py.TestDatetime2.test_all[mixed_prestable-26-4_and_stable-26-3-1] -ydb/tests/compatibility/udf test_datetime2.py.TestDatetime2.test_all[mixed_stable-26-3-1_and_stable-26-2-1] +ydb/library/actors/interconnect/ut InterconnectSessionV2.ActorSystemRoundTrip +ydb/library/actors/interconnect/ut InterconnectSessionV2.ActorSystemTeardownIdleSessions +ydb/library/actors/interconnect/ut InterconnectSessionV2.ActorSystemTeardownUnderLoad +ydb/library/actors/interconnect/ut InterconnectSessionV2.ClosePeerSocketAndReconnect +ydb/library/actors/interconnect/ut InterconnectSessionV2.DirectSessionRoundTrip +ydb/library/actors/interconnect/ut InterconnectSessionV2.FallbackWithoutBufRing +ydb/library/actors/interconnect/ut InterconnectSessionV2.ForcedSessionTeardownAndReconnect +ydb/library/actors/interconnect/ut InterconnectSessionV2.LargePayloadRoundTrip +ydb/library/actors/interconnect/ut InterconnectSessionV2.LoadLikeRoundTripFallback +ydb/library/actors/interconnect/ut InterconnectSessionV2.LoadLikeRoundTripMultiChannel +ydb/library/actors/interconnect/ut InterconnectSessionV2.LoadLikeRoundTripSharedShardFallbackManyPeers +ydb/library/actors/interconnect/ut InterconnectSessionV2.LoadLikeRoundTripSharedShardManyPeers +ydb/library/actors/interconnect/ut InterconnectSessionV2.LoadLikeRoundTripWithBackpressure +ydb/library/actors/interconnect/ut InterconnectSessionV2.LoadLikeRoundTripWithPayload +ydb/library/actors/interconnect/ut InterconnectSessionV2.PeerStopTriggersDisconnect +ydb/library/actors/interconnect/ut InterconnectSessionV2.RepeatedDisconnectChurnUnderLoad ydb/tests/functional/audit test_canonical_records.py.test_dstool_evict_vdisk_grpc ydb/tests/functional/nbs py3test.sole chunk ydb/tests/functional/nbs test_nbs.py.TestNbs.test_nbs_500gb_disk_read_write diff --git a/.github/config/muted_ya_tsan.txt b/.github/config/muted_ya_tsan.txt index b9acc861149..e02fd5be4a8 100644 --- a/.github/config/muted_ya_tsan.txt +++ b/.github/config/muted_ya_tsan.txt @@ -100,6 +100,7 @@ ydb/core/kqp/ut/runtime unittest.[*/*] chunk ydb/core/kqp/ut/scheme KqpScheme.BuildingUniqIndexAllowsTableModificationsPublicApi+EnableIndexStreamWrite ydb/core/kqp/ut/scheme KqpScheme.BuildingUniqIndexAllowsTableModificationsPublicApi-EnableIndexStreamWrite ydb/core/kqp/ut/scheme KqpScheme.BuildingUniqIndexAllowsTableModificationsSql-EnableIndexStreamWrite +ydb/core/kqp/ut/scheme KqpScheme.BuildingUniqIndexDeniesTableModificationsPublicApi-EnableIndexStreamWrite ydb/core/kqp/ut/scheme KqpScheme.BuildingUniqIndexDeniesTableModificationsSql-EnableIndexStreamWrite ydb/core/kqp/ut/scheme unittest.[*/*] chunk ydb/core/kqp/ut/service KqpQueryService.FlowControllOnHugeRealTable-LongRow @@ -647,7 +648,9 @@ ydb/tests/functional/tpc/medium test_diff_processing.py.TestTpcdsDiffProcessing. ydb/tests/functional/tpc/medium test_diff_processing.py.TestTpcdsDiffProcessing.test_tpcds[CheckCanonicalPolicy.NO] ydb/tests/functional/tpc/medium test_diff_processing.py.TestTpcdsDiffProcessing.test_tpcds[CheckCanonicalPolicy.WARNING] ydb/tests/functional/tpc/medium test_diff_processing.py.TestTpchDiffProcessing.test_tpch[CheckCanonicalPolicy.ERROR] +ydb/tests/functional/tpc/medium test_diff_processing.py.TestTpchDiffProcessing.test_tpch[CheckCanonicalPolicy.NO] ydb/tests/functional/tpc/medium test_import_csv.py.TestExternalImportCsv.test +ydb/tests/functional/tpc/medium test_import_csv.py.TestExternalImportCsvArrow.test ydb/tests/functional/tpc/medium test_tpcc.py.TestTpccW10T4SdkCompaction.test ydb/tests/functional/tpc/medium test_tpcc.py.TestTpccW5T4LegacyCompaction.test ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[12] @@ -659,9 +662,12 @@ ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[17] ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[18] ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[19] ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[21] +ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[4] +ydb/tests/functional/tpc/medium test_upload.py.TestUploadTpchS0_1.test_tpch[5] ydb/tests/functional/tpc/medium test_workload_manager.py.TestClickbenchWM.test ydb/tests/functional/tpc/medium test_workload_manager.py.TestClickbenchWMComputeSchedulerP1T1.test ydb/tests/functional/tpc/medium test_workload_manager.py.TestTpchWMS0_1.test +ydb/tests/functional/tpc/medium test_workload_manager.py.TestWMOltpAdHoc.test ydb/tests/functional/tpc/medium test_workload_manager.py.TestWMOltpTpchS0_1.test ydb/tests/functional/tpc/medium/tpch py3test.[test_decimal.py */*] chunk ydb/tests/functional/tpc/medium/tpch py3test.[test_duplicates.py */*] chunk diff --git a/ydb/core/base/fulltext.cpp b/ydb/core/base/fulltext.cpp index 7b46e938205..e866fea00db 100644 --- a/ydb/core/base/fulltext.cpp +++ b/ydb/core/base/fulltext.cpp @@ -339,7 +339,7 @@ namespace { } if (tryRead(q, c2, n2) && IsDecdigit(c2)) { p = q + n2; - prev = LETTER; + prev = DIGIT; safeEnd = p; } else { break; diff --git a/ydb/core/base/ut/fulltext_ut.cpp b/ydb/core/base/ut/fulltext_ut.cpp index 15e510f9cfe..7d6c14df7a2 100644 --- a/ydb/core/base/ut/fulltext_ut.cpp +++ b/ydb/core/base/ut/fulltext_ut.cpp @@ -540,6 +540,39 @@ Y_UNIT_TEST_SUITE(NFulltext) { (TVector<T>{{"foo bar", false}})); } + Y_UNIT_TEST(MidNumberChainedStandard) { + // Regression test: after consuming a MidNumber separator + digit, prev was + // incorrectly set to LETTER instead of DIGIT, so a second separator would not + // satisfy the (prev == DIGIT || prev == MID_DIGIT) guard and the token was cut short. + Ydb::Table::FulltextIndexSettings::Analyzers analyzers; + analyzers.set_tokenizer(Ydb::Table::FulltextIndexSettings::STANDARD); + + // Two separators: "1,2,3" must be one token. + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2,3", analyzers), (TVector<TString>{"1,2,3"})); + + // Mix of MidNumber chars (comma and period). + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2.3", analyzers), (TVector<TString>{"1,2.3"})); + + // Trailing separator does not join — "1," ends at safeEnd before the comma. + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2,", analyzers), (TVector<TString>{"1,2"})); + + // Longer chain. + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2,3,4,5", analyzers), (TVector<TString>{"1,2,3,4,5"})); + + // Multiple tokens separated by whitespace — each chained number is its own token. + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2,3 4,5,6", analyzers), (TVector<TString>{"1,2,3", "4,5,6"})); + + // Mixed: a word token followed by a chained number token. + UNIT_ASSERT_VALUES_EQUAL(Analyze("price 1,234,567", analyzers), (TVector<TString>{"price", "1,234,567"})); + + // Chained number token followed by a letter token. + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2,3 end", analyzers), (TVector<TString>{"1,2,3", "end"})); + + // Punctuation breaks tokens: "1,2.foo" — the period before a letter is MidLetter territory, + // but here it follows digits so the chain stops at "1,2" and "foo" is separate. + UNIT_ASSERT_VALUES_EQUAL(Analyze("1,2.foo", analyzers), (TVector<TString>{"1,2", "foo"})); + } + Y_UNIT_TEST(WordBreakTest) { // Generated from // http://www.unicode.org/Public/12.1.0/ucd/auxiliary/WordBreakTest.txt diff --git a/ydb/core/blobstorage/nodewarden/distconf.h b/ydb/core/blobstorage/nodewarden/distconf.h index a194af1a701..dc8107b54a6 100644 --- a/ydb/core/blobstorage/nodewarden/distconf.h +++ b/ydb/core/blobstorage/nodewarden/distconf.h @@ -488,6 +488,7 @@ namespace NKikimr::NStorage { bool ConvertToDonor = false; bool IgnoreVSlotQuotaCheck = false; bool AllowUnusableDisks = false; + bool SettleOnlyOnOperationalDisks = false; bool IsSelfHealReasonDecommit = false; TBridgePileId BridgePileId; std::optional<TGroupId> BridgeProxyGroupId; diff --git a/ydb/core/blobstorage/nodewarden/distconf_generate.cpp b/ydb/core/blobstorage/nodewarden/distconf_generate.cpp index 9e99daffe52..b8dd9706aa9 100644 --- a/ydb/core/blobstorage/nodewarden/distconf_generate.cpp +++ b/ydb/core/blobstorage/nodewarden/distconf_generate.cpp @@ -179,6 +179,7 @@ namespace NKikimr::NStorage { NKikimrBlobStorage::TNodeWardenServiceSet::TPDisk Record; ui32 UsedSlots = 0; bool Usable = true; + bool Operational = false; TString WhyUnusable; i64 SpaceAvailable = 0; bool AdjustSpaceAvailable = false; @@ -249,6 +250,12 @@ namespace NKikimr::NStorage { if (params.BaseConfig) { const auto& baseConfig = *params.BaseConfig; + THashSet<ui32> connectedNodes; + for (const auto& node : baseConfig.GetNode()) { + if (node.GetConnected()) { + connectedNodes.insert(node.GetNodeId()); + } + } std::optional<NKikimrBlobStorage::TPDiskSpaceColor::E> pdiskSpaceColorBorder; ui32 pdiskSpaceMarginPromille = 150; @@ -290,6 +297,8 @@ namespace NKikimr::NStorage { if (pdisk.GetExpectedSlotSize()) { pdiskMapperSettings[pdiskId].SlotSizeInBytes = pdisk.GetExpectedSlotSize(); } + pdiskInfo.Operational = connectedNodes.contains(pdiskId.NodeId) && (!pdisk.HasPDiskMetrics() || !pdisk.GetPDiskMetrics().HasState() || + pdisk.GetPDiskMetrics().GetState() == NKikimrBlobStorage::TPDiskState::Normal); // this 'usable' logic repeats the one in BS_CONTROLLER if (pdisk.GetDriveStatus() != NKikimrBlobStorage::EDriveStatus::ACTIVE) { @@ -534,7 +543,7 @@ namespace NKikimr::NStorage { .SlotSizeInBytes = settings.SlotSizeInBytes, .Groups{}, .SpaceAvailable = item.SpaceAvailable, - .Operational = true, + .Operational = item.Operational, .Decommitted = false, .WhyUnusable = whyUnusable, }); @@ -559,8 +568,13 @@ namespace NKikimr::NStorage { NBsController::TGroupMapperError error; const ui32 groupSizeInUnits = 1; // static groups are always single-unit - if (!mapper.AllocateGroup(params.GroupId.GetRawId(), groupDefinition, replacedDisks, - params.ForbiddenPDisks, groupSizeInUnits, params.RequiredSpace, false, {}, error)) { + bool allocated = mapper.AllocateGroup(params.GroupId.GetRawId(), groupDefinition, replacedDisks, + params.ForbiddenPDisks, groupSizeInUnits, params.RequiredSpace, true, {}, error); + if (!allocated && !params.SettleOnlyOnOperationalDisks) { + allocated = mapper.AllocateGroup(params.GroupId.GetRawId(), groupDefinition, replacedDisks, + params.ForbiddenPDisks, groupSizeInUnits, params.RequiredSpace, false, {}, error); + } + if (!allocated) { throw TExConfigError() << "group allocation failed Error# " << error.ErrorMessage << " groupDefinition# " << dumpGroupDefinition(); } diff --git a/ydb/core/blobstorage/nodewarden/distconf_invoke_static_group.cpp b/ydb/core/blobstorage/nodewarden/distconf_invoke_static_group.cpp index 8710dc9eb78..6c2eb0cf1bd 100644 --- a/ydb/core/blobstorage/nodewarden/distconf_invoke_static_group.cpp +++ b/ydb/core/blobstorage/nodewarden/distconf_invoke_static_group.cpp @@ -251,6 +251,7 @@ namespace NKikimr::NStorage { .ConvertToDonor = cmd.GetConvertToDonor(), .IgnoreVSlotQuotaCheck = cmd.GetIgnoreVSlotQuotaCheck(), .AllowUnusableDisks = cmd.GetAllowUnusableDisks(), + .SettleOnlyOnOperationalDisks = cmd.GetSettleOnlyOnOperationalDisks(), .IsSelfHealReasonDecommit = cmd.GetIsSelfHealReasonDecommit(), .BridgePileId = bridgePileId, .BridgeProxyGroupId = bridgeProxyGroupId, diff --git a/ydb/core/blobstorage/nodewarden/distconf_ut.cpp b/ydb/core/blobstorage/nodewarden/distconf_ut.cpp index 044f7264bef..7f61fb5d6af 100644 --- a/ydb/core/blobstorage/nodewarden/distconf_ut.cpp +++ b/ydb/core/blobstorage/nodewarden/distconf_ut.cpp @@ -835,6 +835,10 @@ Y_UNIT_TEST_SUITE(TDistconfStaticGroupSelfHealTest) { node->MutableLocation()->SetDataCenter(dataCenter); node->MutableLocation()->SetRack(rack); } + + auto *baseNode = BaseConfig.AddNode(); + baseNode->SetNodeId(nodeId); + baseNode->SetConnected(true); } void AddCandidatePDisk(ui32 nodeId, ui32 pdiskId) { @@ -949,6 +953,26 @@ Y_UNIT_TEST_SUITE(TDistconfStaticGroupSelfHealTest) { } UNIT_FAIL("PDisk not found"); } + + void SetNodeConnected(ui32 nodeId, bool connected) { + for (auto& node : *BaseConfig.MutableNode()) { + if (node.GetNodeId() == nodeId) { + node.SetConnected(connected); + return; + } + } + UNIT_FAIL("Node not found"); + } + + void SetPDiskState(ui32 nodeId, NKikimrBlobStorage::TPDiskState::E state) { + for (auto& pdisk : *BaseConfig.MutablePDisk()) { + if (pdisk.GetNodeId() == nodeId) { + pdisk.MutablePDiskMetrics()->SetState(state); + return; + } + } + UNIT_FAIL("PDisk not found"); + } }; NKikimrBlobStorage::TGroupGeometry Geometry(ui32 numFailDomains) { @@ -960,7 +984,8 @@ Y_UNIT_TEST_SUITE(TDistconfStaticGroupSelfHealTest) { } void Reallocate(TSetup& s, const NProtoBuf::RepeatedField<ui32>& allowedNodeIds, bool applyNodeAllowList, - i32 erasureSpecies = TBlobStorageGroupType::ErasureNone, ui32 numFailDomains = 1, bool allowUnusableDisks = false) { + i32 erasureSpecies = TBlobStorageGroupType::ErasureNone, ui32 numFailDomains = 1, + bool allowUnusableDisks = false, bool settleOnlyOnOperationalDisks = false) { auto *selfManagementConfig = s.Config.MutableSelfManagementConfig(); selfManagementConfig->MutableGeometry()->CopyFrom(Geometry(numFailDomains)); selfManagementConfig->SetPDiskType(NKikimrBlobStorage::EPDiskType::ROT); @@ -980,6 +1005,7 @@ Y_UNIT_TEST_SUITE(TDistconfStaticGroupSelfHealTest) { .BaseConfig = &s.BaseConfig, .IgnoreVSlotQuotaCheck = true, .AllowUnusableDisks = allowUnusableDisks, + .SettleOnlyOnOperationalDisks = settleOnlyOnOperationalDisks, .ApplySelfHealNodeAllowList = applyNodeAllowList, }); } @@ -1042,6 +1068,46 @@ Y_UNIT_TEST_SUITE(TDistconfStaticGroupSelfHealTest) { UNIT_ASSERT_NO_EXCEPTION(Reallocate(s, NodeIds({}), /*applyNodeAllowList=*/ true)); } + Y_UNIT_TEST(PrefersOperationalPDisk) { + TSetup s = MakeSetup(); + s.SetNodeConnected(2, false); + s.SetNodeConnected(4, false); + s.SetNodeConnected(5, false); + Reallocate(s, NodeIds({}), false); + UNIT_ASSERT_VALUES_EQUAL(s.GetGroupVDiskNode(), 3u); + } + + Y_UNIT_TEST(FallsBackToNonOperationalPDiskByDefault) { + TSetup s = MakeSetup(); + for (ui32 nodeId = 2; nodeId <= 5; ++nodeId) { + s.SetNodeConnected(nodeId, false); + } + UNIT_ASSERT_NO_EXCEPTION(Reallocate(s, NodeIds({}), false)); + } + + Y_UNIT_TEST(FailsWithoutOperationalPDiskWhenRequested) { + TSetup s = MakeSetup(); + for (ui32 nodeId = 2; nodeId <= 5; ++nodeId) { + s.SetNodeConnected(nodeId, false); + } + UNIT_ASSERT_EXCEPTION( + Reallocate(s, NodeIds({}), false, TBlobStorageGroupType::ErasureNone, 1, false, + /*settleOnlyOnOperationalDisks=*/ true), + NKikimr::NStorage::TDistributedConfigKeeper::TExConfigError); + } + + Y_UNIT_TEST(RejectsNonNormalPDiskWhenOperationalRequired) { + TSetup s = MakeSetup(); + s.SetPDiskState(2, NKikimrBlobStorage::TPDiskState::OpenFileError); + for (ui32 nodeId = 3; nodeId <= 5; ++nodeId) { + s.SetNodeConnected(nodeId, false); + } + UNIT_ASSERT_EXCEPTION( + Reallocate(s, NodeIds({}), false, TBlobStorageGroupType::ErasureNone, 1, false, + /*settleOnlyOnOperationalDisks=*/ true), + NKikimr::NStorage::TDistributedConfigKeeper::TExConfigError); + } + Y_UNIT_TEST(Block42KeepsExistingVDisksOnNonAllowedNodes) { TSetup s = MakeBlock42Setup(); Reallocate(s, NodeIds({10}), /*applyNodeAllowList=*/ true, TBlobStorageGroupType::Erasure4Plus2Block, /*numFailDomains=*/ 8); diff --git a/ydb/core/kafka_proxy/ut/ut_protocol.cpp b/ydb/core/kafka_proxy/ut/ut_protocol.cpp index 755671ad22e..9524560a77d 100644 --- a/ydb/core/kafka_proxy/ut/ut_protocol.cpp +++ b/ydb/core/kafka_proxy/ut/ut_protocol.cpp @@ -2824,52 +2824,73 @@ Y_UNIT_TEST_SUITE(KafkaProtocol) { topicFullPath << "/Root/" << topic; NYdb::NTopic::TTopicClient pqClient(*testServer.Driver); - CreateTopic(pqClient, topicFullPath, 1, {"consumer1"}, /*retention_sec = */ 1); + CreateTopic(pqClient, topicFullPath, 1, {"consumer1"}, /*retention_sec = */ 1); - NYdb::NTopic::TWriteSessionSettings wSSettings{topicFullPath, "producer1", ""}; - wSSettings.Codec(NTopic::ECodec::RAW); - auto writeSession = pqClient.CreateSimpleBlockingWriteSession(wSSettings); - - WriteMessagesWithKeys(writeSession, {{"key-1", 7_MB}}, 3); - WriteMessagesWithKeys(writeSession, {{"key-new", 100}}, 20); - Sleep(TDuration::Seconds(15)); + NYdb::NTopic::TWriteSessionSettings wSSettings{topicFullPath, "producer1", ""}; + wSSettings.Codec(NTopic::ECodec::RAW); + auto writeSession = pqClient.CreateSimpleBlockingWriteSession(wSSettings); - NYdb::NTopic::TReadSessionSettings rSSettings{.ConsumerName_ = "consumer1"}; - rSSettings.AppendTopics({topicFullPath}); - auto readSession = pqClient.CreateReadSession(rSSettings); - for (ui32 triesCount = 3; triesCount != 0;) { - auto results = Read(readSession, false); - if (results.empty()) { - triesCount--; - Sleep(TDuration::MilliSeconds(250)); - continue; - } - for (auto& dataEvent : results) { - for (const auto& msg : dataEvent.GetMessages()) { - UNIT_ASSERT_GE(msg.GetOffset(), 1); - break; - } + auto waitStartOffsetAtLeast = [&](ui64 minStartOffset, TDuration timeout, const TString& stage) { + const auto deadline = TInstant::Now() + timeout; + std::optional<ui64> lastStartOffset; + while (TInstant::Now() < deadline) { + auto describe = pqClient.DescribeTopic( + topicFullPath, + NYdb::NTopic::TDescribeTopicSettings().IncludeStats(true)).GetValueSync(); + UNIT_ASSERT_C(describe.IsSuccess(), describe.GetIssues().ToString()); + const auto& partitions = describe.GetTopicDescription().GetPartitions(); + UNIT_ASSERT_VALUES_EQUAL(partitions.size(), 1); + const auto& stats = partitions[0].GetPartitionStats(); + UNIT_ASSERT(stats.has_value()); + lastStartOffset = stats->GetStartOffset(); + Cerr << "===[" << stage << "] startOffset=" << *lastStartOffset + << " endOffset=" << stats->GetEndOffset() << Endl; + if (*lastStartOffset >= minStartOffset) { + return; } + Sleep(TDuration::MilliSeconds(500)); } - auto msg = client.AlterConfigs( - {TTopicConfig(topic, 1, std::nullopt, std::nullopt, {{"cleanup.policy", "compact"}})}); - UNIT_ASSERT_VALUES_EQUAL(msg->Responses[0].ErrorCode, NONE_ERROR); - WriteMessagesWithKeys(writeSession, {{"key-1", 6_MB}}, 10); - for (ui32 triesCount = 30; triesCount != 0;) { - auto results = Read(readSession, false); - if (results.empty()) { - triesCount--; - Sleep(TDuration::MilliSeconds(500)); - continue; + UNIT_ASSERT_C( + false, + TStringBuilder() << "Timed out waiting for startOffset >= " << minStartOffset + << " at stage " << stage + << ", last startOffset=" + << (lastStartOffset ? ToString(*lastStartOffset) : "n/a")); + }; + + WriteMessagesWithKeys(writeSession, {{"key-1", 7_MB}}, 3); + WriteMessagesWithKeys(writeSession, {{"key-new", 100}}, 20); + waitStartOffsetAtLeast(1, TDuration::Seconds(60), "retention"); + + auto msg = client.AlterConfigs( + {TTopicConfig(topic, 1, std::nullopt, std::nullopt, {{"cleanup.policy", "compact"}})}); + UNIT_ASSERT_VALUES_EQUAL(msg->Responses[0].ErrorCode, NONE_ERROR); + WriteMessagesWithKeys(writeSession, {{"key-1", 6_MB}}, 10); + waitStartOffsetAtLeast(2, TDuration::Seconds(60), "compaction"); + + NYdb::NTopic::TReadSessionSettings rSSettings{.ConsumerName_ = "consumer1"}; + rSSettings.AppendTopics({topicFullPath}); + auto readSession = pqClient.CreateReadSession(rSSettings); + bool seenMessage = false; + for (ui32 triesCount = 30; triesCount != 0 && !seenMessage; --triesCount) { + auto results = Read(readSession, false); + if (results.empty()) { + Sleep(TDuration::MilliSeconds(500)); + continue; + } + for (auto& dataEvent : results) { + for (const auto& message : dataEvent.GetMessages()) { + UNIT_ASSERT_GT(message.GetOffset(), 1); + seenMessage = true; + break; } - for (auto& dataEvent : results) { - for (const auto& msg : dataEvent.GetMessages()) { - UNIT_ASSERT_GT(msg.GetOffset(), 1); - break; - } + if (seenMessage) { + break; } } } + UNIT_ASSERT_C(seenMessage, "No messages read after compaction gap"); + } Y_UNIT_TEST(DescribeConfigsScenario) { TInsecureTestServer testServer("2"); diff --git a/ydb/core/mind/bscontroller/cmds_storage_pool.cpp b/ydb/core/mind/bscontroller/cmds_storage_pool.cpp index e5cb792503e..80b43b185d8 100644 --- a/ydb/core/mind/bscontroller/cmds_storage_pool.cpp +++ b/ydb/core/mind/bscontroller/cmds_storage_pool.cpp @@ -724,6 +724,7 @@ namespace NKikimr::NBsController { node.SetLastDisconnectTimestamp(it->second.LastDisconnectTimestamp.GetValue()); node.SetLastSeenTimestamp(it->second.LastConnectTimestamp <= it->second.LastDisconnectTimestamp ? it->second.LastDisconnectTimestamp.GetValue() : Timestamp.GetValue()); + node.SetConnected(bool(it->second.ConnectedServerId)); } auto *key = node.MutableHostKey(); key->SetFqdn(std::get<0>(hostId)); diff --git a/ydb/core/mind/bscontroller/self_heal.cpp b/ydb/core/mind/bscontroller/self_heal.cpp index 4dfee75874b..276126666f0 100644 --- a/ydb/core/mind/bscontroller/self_heal.cpp +++ b/ydb/core/mind/bscontroller/self_heal.cpp @@ -182,6 +182,7 @@ namespace NKikimr::NBsController { VDiskIDFromVDiskID(*VDiskToReplace, cmd->MutableVDiskId()); cmd->SetConvertToDonor(DonorMode); cmd->SetAllowUnusableDisks(true); + cmd->SetSettleOnlyOnOperationalDisks(true); cmd->SetIsSelfHealReasonDecommit(IsSelfHealReasonDecommit); cmd->SetFromSelfHeal(true); Send(MakeBlobStorageNodeWardenID(SelfId().NodeId()), ev.release()); diff --git a/ydb/core/persqueue/pqrb/read_balancer.cpp b/ydb/core/persqueue/pqrb/read_balancer.cpp index a1bb23dbf10..7cf549b5738 100644 --- a/ydb/core/persqueue/pqrb/read_balancer.cpp +++ b/ydb/core/persqueue/pqrb/read_balancer.cpp @@ -920,7 +920,7 @@ void TPersQueueReadBalancer::Handle(TEvPQ::TEvMirrorTopicDescription::TPtr& ev, } void TPersQueueReadBalancer::BroadcastPartitionError(const TString& message, const NKikimrServices::EServiceKikimr service, const TActorContext& ctx) { - const TInstant now = TInstant::Now(); + const TInstant now = TAppData::TimeProvider->Now(); for (const auto& [_, pipeLocation] : TabletPipes) { THolder<TEvPQ::TBroadcastPartitionError> ev{new TEvPQ::TBroadcastPartitionError(message, service, now)}; NTabletPipe::SendData(ctx, pipeLocation.PipeActor, ev.Release()); @@ -983,7 +983,7 @@ void TPersQueueReadBalancer::ProcessMLPGetPartitionRequests(const TActorContext& } TReceiveAttemptPartitionsWriteBatch batch; - const auto now = TInstant::Now(); + const auto now = TAppData::TimeProvider->Now(); while (!PendingMLPGetPartitionRequests.empty()) { auto ev = std::move(PendingMLPGetPartitionRequests.front()); @@ -1053,7 +1053,7 @@ void TPersQueueReadBalancer::CleanupReceiveAttemptPartitions(const TActorContext return; } - auto deletes = MLPBalancer->CollectExpiredReceiveAttemptPartitions(TInstant::Now()); + auto deletes = MLPBalancer->CollectExpiredReceiveAttemptPartitions(TAppData::TimeProvider->Now()); if (deletes.empty()) { return; } diff --git a/ydb/core/persqueue/pqrb/read_balancer__balancing.cpp b/ydb/core/persqueue/pqrb/read_balancer__balancing.cpp index b91d5afe224..545eec84d69 100644 --- a/ydb/core/persqueue/pqrb/read_balancer__balancing.cpp +++ b/ydb/core/persqueue/pqrb/read_balancer__balancing.cpp @@ -1345,7 +1345,7 @@ void TConsumer::Balance(const TActorContext& ctx) { return; } - auto startTime = TInstant::Now(); + auto startTime = TAppData::TimeProvider->Now(); // We try to balance the partitions by sessions that clearly want to read them, even if the distribution is not uniform. for (auto& [_, family] : Families) { @@ -1502,7 +1502,7 @@ void TConsumer::Balance(const TActorContext& ctx) { } } - auto duration = TInstant::Now() - startTime; + auto duration = TAppData::TimeProvider->Now() - startTime; YDB_LOG_DEBUG("Balancing", {"logPrefix", LogPrefix()}, {"duration", duration}); diff --git a/ydb/core/persqueue/pqtablet/partition/autopartitioning_manager.cpp b/ydb/core/persqueue/pqtablet/partition/autopartitioning_manager.cpp index 5219570031e..b1704a5c22a 100644 --- a/ydb/core/persqueue/pqtablet/partition/autopartitioning_manager.cpp +++ b/ydb/core/persqueue/pqtablet/partition/autopartitioning_manager.cpp @@ -3,6 +3,7 @@ #include <memory> #include <type_traits> +#include <ydb/core/base/appdata_fwd.h> #include <ydb/core/base/feature_flags.h> #include <ydb/core/persqueue/common/last_counter.h> #include <ydb/core/persqueue/common/partition_id.h> @@ -12,6 +13,8 @@ #include <ydb/core/persqueue/public/utils.h> #include <ydb/core/persqueue/writer/source_id_encoding.h> // TODO move to pubcli or common +#include <library/cpp/time_provider/time_provider.h> + #include <util/generic/strbuf.h> namespace NKikimr::NPQ { @@ -20,7 +23,7 @@ using TSlidingWindow = NSlidingWindow::TSlidingWindow<NSlidingWindow::TSumOperat namespace { void DoCleanUp(std::unordered_map<TString, TSlidingWindow>& writtenBytes) { - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); for (auto it = writtenBytes.begin(); it != writtenBytes.end();) { auto& counter = it->second; @@ -111,7 +114,7 @@ protected: } auto key128 = NKikimr::NPQ::AsInt<TUint128>(key); - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); SumMetric->Update(delta, now); @@ -182,7 +185,7 @@ protected: return NKikimrPQ::EScaleStatus::NORMAL; } - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); const auto usagePercent = SumMetric->GetValue() * 100.0 / Config.GetPartitionStrategy().GetScaleThresholdSeconds() / MaxUsagePerSec; const auto sourceIdWindow = TDuration::Seconds(std::min<ui32>(5, Config.GetPartitionStrategy().GetScaleThresholdSeconds())); const auto sourceIdCount = SourceIdCounter.Count(now - sourceIdWindow); @@ -266,7 +269,7 @@ protected: } std::vector<std::pair<TString, ui64>> GetSerializedMetrics() { - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); std::vector<std::pair<TString, ui64>> result; for (auto& [sourceIdHash, counter] : PerSourceMetrics) { diff --git a/ydb/core/persqueue/pqtablet/partition/mlp/mlp_consumer.cpp b/ydb/core/persqueue/pqtablet/partition/mlp/mlp_consumer.cpp index 8a4664092dd..27af489c8a8 100644 --- a/ydb/core/persqueue/pqtablet/partition/mlp/mlp_consumer.cpp +++ b/ydb/core/persqueue/pqtablet/partition/mlp/mlp_consumer.cpp @@ -649,7 +649,7 @@ void TConsumerActor::ScheduleProcessing() { return; } - const bool force = NextForcedProcessingTime <= TInstant::Now(); + const bool force = NextForcedProcessingTime <= TAppData::TimeProvider->Now(); const bool dlqEmptyOrAlreadyProcessing = DLQMoverActorId || Storage->DLQEmpty(); if (!force && ReadRequestsQueue.empty() && @@ -663,7 +663,7 @@ void TConsumerActor::ScheduleProcessing() { return; } - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); TDuration delay = NextProcessingTime > now && dlqEmptyOrAlreadyProcessing ? NextProcessingTime - now : TDuration::Zero(); @@ -674,8 +674,8 @@ void TConsumerActor::ScheduleProcessing() { void TConsumerActor::ProcessEventQueue() { LOG_D("ProcessEventQueue"); - NextProcessingTime = TInstant::Now() + TDuration::MilliSeconds(AppData()->PQConfig.GetMLPBatchWindowMilliSeconds()); - NextForcedProcessingTime = TInstant::Now() + TDuration::Seconds(1); + NextProcessingTime = TAppData::TimeProvider->Now() + TDuration::MilliSeconds(AppData()->PQConfig.GetMLPBatchWindowMilliSeconds()); + NextForcedProcessingTime = TAppData::TimeProvider->Now() + TDuration::Seconds(1); for (auto& ev : CommitRequestsQueue) { absl::flat_hash_map<ui64, EOperationResult> offsetResults; @@ -743,7 +743,7 @@ void TConsumerActor::ProcessEventQueue() { Storage->ProccessDeadlines(); LOG_T("AfterDeadlinesDump: " << Storage->DebugString()); - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); TStorage::TPosition position; std::deque<TEvPQ::TEvMLPReadRequest::TPtr> readRequestsQueue; @@ -886,7 +886,7 @@ size_t TConsumerActor::RequiredToFetchMessageCount() const { bool TConsumerActor::FetchMessagesIfNeeded() { if (Storage->GetMessageCount() > 0) { - LastTimeWithMessages = TInstant::Now(); + LastTimeWithMessages = TAppData::TimeProvider->Now(); NotifyPQRB(); } @@ -997,7 +997,7 @@ void TConsumerActor::Handle(TEvPersQueue::TEvResponse::TPtr& ev) { } if (logicalMessageCount > 0) { - LastTimeWithMessages = TInstant::Now(); + LastTimeWithMessages = TAppData::TimeProvider->Now(); NotifyPQRB(); } if (CurrentStateFunc() == &TConsumerActor::StateWork) { @@ -1111,7 +1111,7 @@ bool TConsumerActor::UseForReading() const { if (!Storage->HasUnlockedMessageGroupsId()) { return false; } - return LastTimeWithMessages > TInstant::Now() - NoMessagesTimeout || LastCommittedOffset < PartitionEndOffset; + return LastTimeWithMessages > TAppData::TimeProvider->Now() - NoMessagesTimeout || LastCommittedOffset < PartitionEndOffset; } void TConsumerActor::NotifyPQRB(bool force) { diff --git a/ydb/core/persqueue/pqtablet/partition/partition_write.cpp b/ydb/core/persqueue/pqtablet/partition/partition_write.cpp index 595f8c13cde..2d32874cacb 100644 --- a/ydb/core/persqueue/pqtablet/partition/partition_write.cpp +++ b/ydb/core/persqueue/pqtablet/partition/partition_write.cpp @@ -627,7 +627,7 @@ void TPartition::UpdateAvgWriteBytes(ui64 size, const TInstant& now) } void TPartition::ChangeScaleStatusIfNeeded(NKikimrPQ::EScaleStatus scaleStatus) { - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); if (scaleStatus == ScaleStatus || LastScaleRequestTime + TDuration::Seconds(SCALE_REQUEST_REPEAT_MIN_SECONDS) > now) { return; } diff --git a/ydb/core/persqueue/public/inflight_limiter.cpp b/ydb/core/persqueue/public/inflight_limiter.cpp index 414557ed599..db9322a6748 100644 --- a/ydb/core/persqueue/public/inflight_limiter.cpp +++ b/ydb/core/persqueue/public/inflight_limiter.cpp @@ -1,7 +1,10 @@ #include "inflight_limiter.h" +#include <ydb/core/base/appdata_fwd.h> #include <ydb/library/actors/core/log.h> +#include <library/cpp/time_provider/time_provider.h> + namespace NKikimr::NPQ { TInFlightController::TInFlightController() @@ -60,7 +63,7 @@ bool TInFlightController::Add(ui64 Offset, ui64 Size) { bool isMemoryLimitReached = IsMemoryLimitReached(); if (!wasMemoryLimitReached && isMemoryLimitReached && InFlightFullSince == TInstant::Zero()) { - InFlightFullSince = TInstant::Now(); + InFlightFullSince = TAppData::TimeProvider->Now(); } return !isMemoryLimitReached; @@ -88,7 +91,7 @@ bool TInFlightController::Remove(ui64 Offset) { auto isMemoryLimitReached = IsMemoryLimitReached(); if (wasMemoryLimitReached && !isMemoryLimitReached && InFlightFullSince != TInstant::Zero()) { - auto now = TInstant::Now(); + auto now = TAppData::TimeProvider->Now(); SlidingWindow.Update(now - InFlightFullSince, now); InFlightFullSince = TInstant::Zero(); } @@ -108,7 +111,7 @@ bool TInFlightController::IsMemoryLimitReached() const { TDuration TInFlightController::GetLimitReachedDuration() { TDuration carry = TDuration::Zero(); if (InFlightFullSince != TInstant::Zero()) { - carry = TInstant::Now() - InFlightFullSince; + carry = TAppData::TimeProvider->Now() - InFlightFullSince; } return Min(SLIDING_WINDOW_SIZE, SlidingWindow.GetValue() + carry); diff --git a/ydb/core/persqueue/public/mlp/mlp_writer.cpp b/ydb/core/persqueue/public/mlp/mlp_writer.cpp index a106dd6f3b3..434e4086e4f 100644 --- a/ydb/core/persqueue/public/mlp/mlp_writer.cpp +++ b/ydb/core/persqueue/public/mlp/mlp_writer.cpp @@ -76,7 +76,7 @@ size_t SerializeTo(TWriterSettings::TMessage& item, ::NKikimrClient::TPersQueueP cmdWrite.SetSourceId(""); cmdWrite.SetDisableDeduplication(true); - cmdWrite.SetCreateTimeMS(TInstant::Now().MilliSeconds()); + cmdWrite.SetCreateTimeMS(TAppData::TimeProvider->Now().MilliSeconds()); cmdWrite.SetUncompressedSize(item.MessageBody.size()); cmdWrite.SetExternalOperation(true); if (item.MessageGroupId) { diff --git a/ydb/core/persqueue/writer/partition_chooser_impl__table_helper.h b/ydb/core/persqueue/writer/partition_chooser_impl__table_helper.h index f2488f898f7..9fe99a80a74 100644 --- a/ydb/core/persqueue/writer/partition_chooser_impl__table_helper.h +++ b/ydb/core/persqueue/writer/partition_chooser_impl__table_helper.h @@ -12,6 +12,8 @@ #include <ydb/public/sdk/cpp/include/ydb-cpp-sdk/client/result/result.h> +#include <library/cpp/time_provider/time_provider.h> + namespace NKikimr::NPQ::NPartitionChooser { @@ -179,7 +181,7 @@ public: } if (CreateTime == 0) { - CreateTime = TInstant::Now().MilliSeconds(); + CreateTime = TAppData::TimeProvider->Now().MilliSeconds(); } return true; @@ -228,7 +230,7 @@ public: .Uint64(CreateTime) .Build() .AddParam("$AccessTime") - .Uint64(TInstant::Now().MilliSeconds()) + .Uint64(TAppData::TimeProvider->Now().MilliSeconds()) .Build() .AddParam("$SeqNo") .Uint64(seqNo.value_or(0)) diff --git a/ydb/core/protos/blobstorage_config.proto b/ydb/core/protos/blobstorage_config.proto index 7977e65041b..b3b7ad78845 100644 --- a/ydb/core/protos/blobstorage_config.proto +++ b/ydb/core/protos/blobstorage_config.proto @@ -890,6 +890,7 @@ message TBaseConfig { uint64 LastDisconnectTimestamp = 6; // TInstant uint64 LastSeenTimestamp = 7; // when seen working for the last time ENodeType Type = 8; + bool Connected = 9; } message TDevice { string SerialNumber = 1; diff --git a/ydb/core/protos/blobstorage_distributed_config.proto b/ydb/core/protos/blobstorage_distributed_config.proto index f0411a11f4d..4005990f2d9 100644 --- a/ydb/core/protos/blobstorage_distributed_config.proto +++ b/ydb/core/protos/blobstorage_distributed_config.proto @@ -199,6 +199,7 @@ message TEvNodeConfigInvokeOnRoot { bool IsSelfHealReasonDecommit = 7; bool FromSelfHeal = 8; bool AllowUnusableDisks = 9; + bool SettleOnlyOnOperationalDisks = 10; } // Regenerate configuration so the slain VDisk is no more reported as DESTROY one in the list. diff --git a/ydb/public/sdk/cpp/include/ydb-cpp-sdk/client/table/table.h b/ydb/public/sdk/cpp/include/ydb-cpp-sdk/client/table/table.h index 95554674abb..71f5320d142 100644 --- a/ydb/public/sdk/cpp/include/ydb-cpp-sdk/client/table/table.h +++ b/ydb/public/sdk/cpp/include/ydb-cpp-sdk/client/table/table.h @@ -391,6 +391,7 @@ public: Whitespace, Standard, Keyword, + Alphanumeric, }; struct TAnalyzers { diff --git a/ydb/public/sdk/cpp/src/client/table/out.cpp b/ydb/public/sdk/cpp/src/client/table/out.cpp index 0cfc812cd1d..8662e080734 100644 --- a/ydb/public/sdk/cpp/src/client/table/out.cpp +++ b/ydb/public/sdk/cpp/src/client/table/out.cpp @@ -97,6 +97,9 @@ Y_DECLARE_OUT_SPEC(, NYdb::NTable::TFulltextIndexSettings::ETokenizer, stream, v case NYdb::NTable::TFulltextIndexSettings::ETokenizer::Keyword: stream << "keyword"; break; + case NYdb::NTable::TFulltextIndexSettings::ETokenizer::Alphanumeric: + stream << "alphanumeric"; + break; case NYdb::NTable::TFulltextIndexSettings::ETokenizer::Unspecified: stream << "unspecified"; break; diff --git a/ydb/public/sdk/cpp/src/client/table/table.cpp b/ydb/public/sdk/cpp/src/client/table/table.cpp index 7c7fdc0487d..5df0f443a06 100644 --- a/ydb/public/sdk/cpp/src/client/table/table.cpp +++ b/ydb/public/sdk/cpp/src/client/table/table.cpp @@ -3040,6 +3040,8 @@ TFulltextIndexSettings::TAnalyzers FromProto(const Ydb::Table::FulltextIndexSett return ETokenizer::Standard; case Ydb::Table::FulltextIndexSettings::KEYWORD: return ETokenizer::Keyword; + case Ydb::Table::FulltextIndexSettings::ALPHANUMERIC: + return ETokenizer::Alphanumeric; default: return ETokenizer::Unspecified; } @@ -3093,6 +3095,8 @@ Ydb::Table::FulltextIndexSettings::Analyzers ToProto(const TFulltextIndexSetting return Ydb::Table::FulltextIndexSettings::STANDARD; case ETokenizer::Keyword: return Ydb::Table::FulltextIndexSettings::KEYWORD; + case ETokenizer::Alphanumeric: + return Ydb::Table::FulltextIndexSettings::ALPHANUMERIC; case ETokenizer::Unspecified: return Ydb::Table::FulltextIndexSettings::TOKENIZER_UNSPECIFIED; } diff --git a/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/manager.cpp b/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/manager.cpp index ee78bd7b199..4385b72fba8 100644 --- a/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/manager.cpp +++ b/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/manager.cpp @@ -66,6 +66,10 @@ NMetadata::NModifications::TOperationParsingResult TResourcePoolClassifierManage const TString value = std::visit(TClassifierSettings::TExtractor(), setting); if (property == TResourcePoolClassifierConfig::TDecoder::Rank) { result.SetColumn(property, NMetadata::NInternal::TYDBValue::Int64(FromString<i64>(value))); + } else if (property == "has_stream") { + if (!value.empty()) { + configJson.InsertValue(property, value == "true"); + } } else { configJson.InsertValue(property, value); } diff --git a/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/object.cpp b/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/object.cpp index 6efd775c162..8defd0591f3 100644 --- a/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/object.cpp +++ b/ydb/services/workload_manager/metadata_subscription/resource_pool_classifier/object.cpp @@ -103,7 +103,7 @@ void TResourcePoolClassifierConfig::EnsureSettings() { continue; } try { - std::visit(TClassifierSettings::TParser{value.GetString()}, it->second); + std::visit(TClassifierSettings::TParser{value.GetStringRobust()}, it->second); } catch (...) { continue; } diff --git a/ydb/services/workload_manager/ut/common/query_classifier_ut_common.h b/ydb/services/workload_manager/ut/common/query_classifier_ut_common.h index 12058b2ea72..4d1f321a189 100644 --- a/ydb/services/workload_manager/ut/common/query_classifier_ut_common.h +++ b/ydb/services/workload_manager/ut/common/query_classifier_ut_common.h @@ -43,7 +43,7 @@ inline TResourcePoolClassifierConfig MakeClassifierConfig( json["has_path"] = *hasPath; } if (hasStream) { - json["has_stream"] = *hasStream ? "true" : "false"; + json["has_stream"] = *hasStream; } if (action) { json["action"] = *action; |
