Jerry Cai created KAFKA-17755:
---------------------------------

             Summary: AbstractPartitionAssignor can not enable Rack Aware 
Assignment 
                 Key: KAFKA-17755
                 URL: https://issues.apache.org/jira/browse/KAFKA-17755
             Project: Kafka
          Issue Type: Bug
          Components: consumer
    Affects Versions: 3.8.0
            Reporter: Jerry Cai


During my local test and debug, I noticed that the below logical is in correct, 
it need to change 

from   !racksPerPartition.values().stream().allMatch(partitionRacks::equals)  
to  racksPerPartition.values().stream().allMatch(partitionRacks::equals)

 

 

 

current logical 
{code:java}
protected boolean useRackAwareAssignment(Set<String> consumerRacks, Set<String> 
partitionRacks, Map<TopicPartition, Set<String>> racksPerPartition) {
    if (consumerRacks.isEmpty() || Collections.disjoint(consumerRacks, 
partitionRacks))
        return false;
    else if (preferRackAwareLogic)
        return true;
    else {
        return 
!racksPerPartition.values().stream().allMatch(partitionRacks::equals);
    }
}
 {code}
 

expected logical 
{code:java}
protected boolean useRackAwareAssignment(Set<String> consumerRacks, Set<String> 
partitionRacks, Map<TopicPartition, Set<String>> racksPerPartition) {
    if (consumerRacks.isEmpty() || Collections.disjoint(consumerRacks, 
partitionRacks))
        return false;
    else if (preferRackAwareLogic)
        return true;
    else {
        return 
racksPerPartition.values().stream().allMatch(partitionRacks::equals);
    }
}
 {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to