private void reassignPartition(TopicIdPartition partition) {
        // Find the new member with the least assignment size.
        String newOwner = null;
        for (String anotherMember : sortedMembersByAssignmentSize) {
            if (groupSpec.memberSubscription(anotherMember).subscribedTopicIds().contains(partition.topicId())) {
                newOwner = anotherMember;
                break;
            }
        }

        if (newOwner == null) {
            throw new PartitionAssignorException("No suitable new owner was found for the partition" + partition);
        }

        reassignPartition(partition, newOwner);
    }
Reassigns a partition to an eligible member with the fewest current target assignments.
<ul>
  <li> Iterates over members sorted by ascending assignment size. </li>
  <li> Selects the first member subscribed to the partition's topic. </li>
</ul>

@param partition         The partition to reassign.
@throws AssertionError   If no subscribed member is found.
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/assignor/UniformHeterogeneousAssignmentBuilder.java