SOLR-8375: ReplicaAssigner rejects valid nodes

This commit is contained in:
Noble Paul 2016-03-01 10:49:47 +05:30
parent 79b62ee731
commit e44eebf39d
2 changed files with 5 additions and 6 deletions

View File

@ -226,6 +226,8 @@ Bug Fixes
* SOLR-8748: OverseerTaskProcessor limits number of concurrent tasks to just 10 even though the thread pool * SOLR-8748: OverseerTaskProcessor limits number of concurrent tasks to just 10 even though the thread pool
size is 100. The limit has now been increased to 100. (Scott Blum, shalin) size is 100. The limit has now been increased to 100. (Scott Blum, shalin)
* SOLR-8375: ReplicaAssigner rejects valid nodes (Kelvin Tan, noble)
Optimizations Optimizations
---------------------- ----------------------
* SOLR-7876: Speed up queries and operations that use many terms when timeAllowed has not been * SOLR-7876: Speed up queries and operations that use many terms when timeAllowed has not been

View File

@ -44,11 +44,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import static java.util.Collections.singletonList; import static java.util.Collections.singletonList;
import static org.apache.solr.cloud.rule.Rule.MatchStatus.NODE_CAN_BE_ASSIGNED; import static org.apache.solr.cloud.rule.Rule.MatchStatus.*;
import static org.apache.solr.cloud.rule.Rule.Phase.ASSIGN; import static org.apache.solr.cloud.rule.Rule.Phase.*;
import static org.apache.solr.cloud.rule.Rule.Phase.FUZZY_ASSIGN;
import static org.apache.solr.cloud.rule.Rule.Phase.FUZZY_VERIFY;
import static org.apache.solr.cloud.rule.Rule.Phase.VERIFY;
import static org.apache.solr.common.util.StrUtils.formatString; import static org.apache.solr.common.util.StrUtils.formatString;
import static org.apache.solr.common.util.Utils.getDeepCopy; import static org.apache.solr.common.util.Utils.getDeepCopy;
@ -280,7 +277,7 @@ public class ReplicaAssigner {
Rule rule = rules.get(rulePermutation[i]); Rule rule = rules.get(rulePermutation[i]);
Rule.MatchStatus matchStatus = rule.tryAssignNodeToShard(e.getValue(), Rule.MatchStatus matchStatus = rule.tryAssignNodeToShard(e.getValue(),
copyOfCurrentState, nodeVsTagsCopy, e.getKey().shard, fuzzyPhase ? FUZZY_VERIFY : VERIFY); copyOfCurrentState, nodeVsTagsCopy, e.getKey().shard, fuzzyPhase ? FUZZY_VERIFY : VERIFY);
if (matchStatus != NODE_CAN_BE_ASSIGNED) return null; if (matchStatus != NODE_CAN_BE_ASSIGNED && matchStatus != NOT_APPLICABLE) return null;
} }
} }
return result; return result;