diff --git a/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp index cd3f6dd7d674..37b7096badd7 100644 --- a/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp @@ -599,18 +599,19 @@ void TKafkaReadSessionActor::HandleReleasePartition(TEvPersQueue::TEvReleasePart } NeedRebalance = true; - size_t partitionToReleaseIndex = 0; - size_t i = 0; + ui32 partitionToRelease = 0; + ui32 i = 0; - for (size_t partIndex = 0; partIndex < topicPartitionsIt->second.ReadingNow.size(); partIndex++) { - if (!topicPartitionsIt->second.ToRelease.contains(partIndex) && (group == 0 || partIndex + 1 == group)) { + for (auto curPartition : topicPartitionsIt->second.ReadingNow) { + if (!topicPartitionsIt->second.ToRelease.contains(curPartition) && (group == 0 || curPartition + 1 == group)) { ++i; - if (rand() % i == 0) { // will lead to 1/n probability for each of n partitions - partitionToReleaseIndex = partIndex; + if (rand() % i == 0) { + partitionToRelease = curPartition; } } } - topicPartitionsIt->second.ToRelease.emplace(partitionToReleaseIndex); + + topicPartitionsIt->second.ToRelease.emplace(partitionToRelease); } }