This is an automated email from the ASF dual-hosted git repository.

He-Pin pushed a commit to branch improve-scala38-compat
in repository https://gitbox.apache.org/repos/asf/pekko-management.git

commit 93d1038fd1d2d6c5b9884cc1180e6630d5d10f13
Author: 虎鸣 <[email protected]>
AuthorDate: Mon Jun 15 20:02:19 2026 +0800

    fix: restore Member.ageOrdering in PodDeletionCostAnnotator
    
    Motivation:
    The Scala 3.8 forward compatibility change replaced
    SortedSet.empty(Member.ageOrdering) with SortedSet.empty[Member],
    which uses the default Member.ordering (by host/port) instead of
    ageOrdering (by age). This caused incorrect member ordering for
    pod-deletion-cost annotation, breaking the oldest-member selection
    logic and causing PodDeletionCostAnnotatorSpec test failures.
    
    Modification:
    Revert SortedSet.empty[Member] back to
    SortedSet.empty(Member.ageOrdering) to preserve the correct
    age-based descending sort order.
    
    Result:
    PodDeletionCostAnnotatorSpec tests pass again with correct
    age-based member ordering.
    
    Tests:
    - Not run locally (requires Kubernetes testcontainers)
    
    References:
    Refs #832
---
 .../pekko/rollingupdate/kubernetes/PodDeletionCostAnnotator.scala       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/rolling-update-kubernetes/src/main/scala/org/apache/pekko/rollingupdate/kubernetes/PodDeletionCostAnnotator.scala
 
b/rolling-update-kubernetes/src/main/scala/org/apache/pekko/rollingupdate/kubernetes/PodDeletionCostAnnotator.scala
index cfc3d219..70b36825 100644
--- 
a/rolling-update-kubernetes/src/main/scala/org/apache/pekko/rollingupdate/kubernetes/PodDeletionCostAnnotator.scala
+++ 
b/rolling-update-kubernetes/src/main/scala/org/apache/pekko/rollingupdate/kubernetes/PodDeletionCostAnnotator.scala
@@ -67,7 +67,7 @@ import com.typesafe.config.Config
 
   Cluster(context.system).subscribe(context.self, 
classOf[ClusterEvent.MemberUp], classOf[ClusterEvent.MemberRemoved])
 
-  def receive: Receive = idle(0, SortedSet.empty[Member], 0)
+  def receive: Receive = idle(0, SortedSet.empty(Member.ageOrdering), 0)
 
   private def idle(deletionCost: Int, membersByAgeDesc: SortedSet[Member], 
retryNr: Int): Receive = {
     case cs @ ClusterEvent.CurrentClusterState(members, _, _, _, _) =>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to