diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 47c400d77c6e..c19615a63c83 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -328,6 +328,9 @@ Other Changes * PR#3758: Logs: removed webapp=/solr and also removed from internal context map. +* SOLR-17963: These SolrCloud commands no longer aquire locks (waiting or blocking on other commands that do): + COLLECTIONPROP, ADDREPLICAPROP, DELETEREPLICAPROP. (David Smiley) + ================== 9.10.0 ================== New Features --------------------- diff --git a/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java b/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java index 33455cc2f0c7..2604feadd65f 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestLockTree.java @@ -19,6 +19,7 @@ import static org.apache.solr.common.params.CollectionParams.CollectionAction.ADDREPLICAPROP; import static org.apache.solr.common.params.CollectionParams.CollectionAction.DELETEREPLICA; +import static org.apache.solr.common.params.CollectionParams.CollectionAction.MOCK_REPLICA_TASK; import static org.apache.solr.common.params.CollectionParams.CollectionAction.MODIFYCOLLECTION; import static org.apache.solr.common.params.CollectionParams.CollectionAction.SPLITSHARD; @@ -48,8 +49,6 @@ public void testLocks() throws Exception { .getSession() .lock(CollectionAction.BALANCESHARDUNIQUE, Arrays.asList("coll1", "shard1"))); - assertNull( - lockTree.getSession().lock(ADDREPLICAPROP, Arrays.asList("coll1", "shard1", "core_node2"))); coll1Lock.unlock(); Lock shard1Lock = lockTree @@ -62,7 +61,7 @@ public void testLocks() throws Exception { assertNotNull(replica1Lock); List>> operations = new ArrayList<>(); - operations.add(new Pair<>(ADDREPLICAPROP, Arrays.asList("coll1", "shard1", "core_node2"))); + operations.add(new Pair<>(MOCK_REPLICA_TASK, Arrays.asList("coll1", "shard1", "core_node2"))); operations.add(new Pair<>(MODIFYCOLLECTION, Arrays.asList("coll1"))); operations.add(new Pair<>(SPLITSHARD, Arrays.asList("coll1", "shard1"))); operations.add(new Pair<>(SPLITSHARD, Arrays.asList("coll2", "shard2"))); diff --git a/solr/solrj/src/java/org/apache/solr/common/params/CollectionParams.java b/solr/solrj/src/java/org/apache/solr/common/params/CollectionParams.java index 73e2e9518a1d..6ae82508df4b 100644 --- a/solr/solrj/src/java/org/apache/solr/common/params/CollectionParams.java +++ b/solr/solrj/src/java/org/apache/solr/common/params/CollectionParams.java @@ -101,7 +101,7 @@ enum CollectionAction { ADDROLE(true, LockLevel.NONE), REMOVEROLE(true, LockLevel.NONE), CLUSTERPROP(true, LockLevel.NONE), - COLLECTIONPROP(true, LockLevel.COLLECTION), + COLLECTIONPROP(true, LockLevel.NONE), // atomic; no lock REQUESTSTATUS(false, LockLevel.NONE), DELETESTATUS(false, LockLevel.NONE), ADDREPLICA(true, LockLevel.SHARD), @@ -111,8 +111,8 @@ enum CollectionAction { DISTRIBUTEDAPIPROCESSING(false, LockLevel.NONE), LIST(false, LockLevel.NONE), CLUSTERSTATUS(false, LockLevel.NONE), - ADDREPLICAPROP(true, LockLevel.REPLICA), - DELETEREPLICAPROP(true, LockLevel.REPLICA), + ADDREPLICAPROP(true, LockLevel.NONE), // atomic; no lock + DELETEREPLICAPROP(true, LockLevel.NONE), // atomic; no lock BALANCESHARDUNIQUE(true, LockLevel.COLLECTION), REBALANCELEADERS(true, LockLevel.COLLECTION), MODIFYCOLLECTION(true, LockLevel.COLLECTION),