Skip to content

Commit 1dddea2

Browse files
authored
fix validation of negative partition count value (#5274)
1 parent 8d38576 commit 1dddea2

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

ydb/services/lib/actors/pq_schema_actor.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -764,9 +764,7 @@ namespace NKikimr::NGRpcProxy::V1 {
764764
}
765765

766766
if (settings.has_partitions_count()) {
767-
if (settings.partitions_count() > 0) {
768-
minParts = settings.partitions_count();
769-
}
767+
minParts = settings.partitions_count();
770768
} else if (settings.has_autoscaling_settings()) {
771769
const auto& autoScalteSettings = settings.autoscaling_settings();
772770
if (autoScalteSettings.min_active_partitions() > 0) {
@@ -796,6 +794,10 @@ namespace NKikimr::NGRpcProxy::V1 {
796794
}
797795
}
798796
}
797+
if (minParts <= 0) {
798+
error = TStringBuilder() << "Partitions count must be positive, provided " << settings.partitions_count();
799+
return Ydb::StatusIds::BAD_REQUEST;
800+
}
799801
pqDescr->SetTotalGroupCount(minParts);
800802
pqTabletConfig->SetRequireAuthWrite(true);
801803
pqTabletConfig->SetRequireAuthRead(true);
@@ -1088,9 +1090,11 @@ namespace NKikimr::NGRpcProxy::V1 {
10881090

10891091
if (request.has_partitioning_settings()) {
10901092
const auto& settings = request.partitioning_settings();
1091-
if (settings.min_active_partitions() > 0) {
1092-
minParts = settings.min_active_partitions();
1093+
if (settings.min_active_partitions() < 0) {
1094+
error = TStringBuilder() << "Partitions count must be positive, provided " << settings.min_active_partitions();
1095+
return TYdbPqCodes(Ydb::StatusIds::BAD_REQUEST, Ydb::PersQueue::ErrorCode::VALIDATION_ERROR);
10931096
}
1097+
minParts = std::max<ui32>(1, settings.min_active_partitions());
10941098
if (AppData(ctx)->FeatureFlags.GetEnableTopicSplitMerge() && request.has_partitioning_settings()) {
10951099
auto pqTabletConfigPartStrategy = pqTabletConfig->MutablePartitionStrategy();
10961100
auto autoscaleSettings = settings.autoscaling_settings();

0 commit comments

Comments
 (0)