From cfc546eaae6ead059b9c73b37ffe1ea7baa01e8d Mon Sep 17 00:00:00 2001 From: Nick Tindall Date: Mon, 20 Oct 2025 15:06:39 +1100 Subject: [PATCH] Remove special logic for unassigned shards from WriteLoadConstraintDecider --- .../allocation/decider/WriteLoadConstraintDecider.java | 5 ----- .../decider/WriteLoadConstraintDeciderTests.java | 10 ---------- 2 files changed, 15 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDecider.java b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDecider.java index ec7471f3ca147..1c321e57971ed 100644 --- a/server/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDecider.java +++ b/server/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDecider.java @@ -43,11 +43,6 @@ public Decision canAllocate(ShardRouting shardRouting, RoutingNode node, Routing return Decision.single(Decision.Type.YES, NAME, "Decider is disabled"); } - // Never reject allocation of an unassigned shard - if (shardRouting.assignedToNode() == false) { - return Decision.single(Decision.Type.YES, NAME, "Shard is unassigned. Decider takes no action."); - } - // Check whether the shard being relocated has any write load estimate. If it does not, then this decider has no opinion. var allShardWriteLoads = allocation.clusterInfo().getShardWriteLoads(); var shardWriteLoad = allShardWriteLoads.get(shardRouting.shardId()); diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDeciderTests.java b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDeciderTests.java index c47848a88c266..cd89269f9074e 100644 --- a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDeciderTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/WriteLoadConstraintDeciderTests.java @@ -126,16 +126,6 @@ public void testWriteLoadDeciderCanAllocate() { "Node [*] with write thread pool utilization [0.99] already exceeds the high utilization threshold of [0.900000]. " + "Cannot allocate shard [[test-index][1]] to node without risking increased write latencies." ); - assertDecisionMatches( - "Unassigned shard should always be accepted", - writeLoadDecider.canAllocate( - testHarness.unassignedShardRouting, - randomFrom(testHarness.exceedingThresholdRoutingNode, testHarness.belowThresholdRoutingNode), - testHarness.routingAllocation - ), - Decision.Type.YES, - "Shard is unassigned. Decider takes no action." - ); assertDecisionMatches( "Assigning a new shard to a node that has capacity should succeed", writeLoadDecider.canAllocate(