Hi,
I'm new to Solr and I'm tasked to upgrade our Solr 8.11.3 installation to
Solr 9.6.1.
I'm running into some trouble with the create collection command when it's
sent to a Solr 9.6.1 node with Solr 8.11.3 running as overseers.
The command in Java is
CollectionAdminRequest.createCollection(collectionName, configName,
numShards, 0)
.setAutoAddReplicas(false)
.setRouterName("compositeId")
.setCreateNodeSet("EMPTY")
.setReplicationFactor(1);
And the error that I see on the overseer can be either of the one below. I
guess it depends on if the collection has been created (but deleted) before
or not.
If the collection has been created before but deleted. I'll see in the
overseer (Solr 8) log
01:42:43.927 ERROR (OverseerThreadFactory-25-t...:8983_solr) [ ]
o.a.s.c.a.c.OverseerCollectionMessageHandler Collection:
test-collection_1.2 operation: create failed
org.apache.solr.common.SolrException: Could not fully create collection:
test-collection_1.2
at
org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:218)
~[?:?]
at
org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:271)
~[?:?]
at
org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:524)
~[?:?]
at
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:218)
~[?:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
~[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
But if the collection has never been created before, then I see in the
overseer log
01:42:14.439 INFO (OverseerThreadFactory-25-thread-..._solr) [ ]
o.a.s.c.a.c.CreateCollectionCmd Create collection test1-collection_1.2
01:42:14.442 INFO (OverseerCollectionConfigSetProcessor-...) [ ]
o.a.s.c.OverseerTaskQueue Response ZK path:
/overseer/collection-queue-work/qnr-0000707821 doesn't exist. Requestor may
have disconnected from ZooKeeper
01:42:14.469 ERROR (OverseerStateUpdate-3026498...) [ ] o.a.s.c.Overseer
Exception in Overseer main queue loop
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
NoNode for /clusterstate.json
at
org.apache.zookeeper.KeeperException.create(KeeperException.java:118) ~[?:?]
at
org.apache.zookeeper.KeeperException.create(KeeperException.java:54) ~[?:?]
at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:2561)
~[?:?]
at
org.apache.solr.common.cloud.SolrZkClient.lambda$setData$7(SolrZkClient.java:361)
~[?:?]
at
org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:79)
~[?:?]
at
org.apache.solr.common.cloud.SolrZkClient.setData(SolrZkClient.java:361)
~[?:?]
at
org.apache.solr.cloud.overseer.ZkStateWriter.writePendingUpdates(ZkStateWriter.java:291)
~[?:?]
at
org.apache.solr.cloud.overseer.ZkStateWriter.writePendingUpdates(ZkStateWriter.java:217)
~[?:?]
at
org.apache.solr.cloud.overseer.ZkStateWriter.enqueueUpdate(ZkStateWriter.java:173)
~[?:?]
at
org.apache.solr.cloud.Overseer$ClusterStateUpdater.processQueueItem(Overseer.java:341)
~[?:?]
at
org.apache.solr.cloud.Overseer$ClusterStateUpdater.run(Overseer.java:271)
~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
01:42:14.490 WARN (OverseerStateUpdate-3026498...) [ ] o.a.s.c.Overseer
Exception when process message = {
"replicationFactor":1,
"fromApi":"true",
"collection.configName":"test1-collection",
"router.name":"compositeId",
"createNodeSet":"EMPTY",
"waitForFinalState":null,
"pullReplicas":null,
"async":"70e3b8e7-9ee1-468d-96f6-470900c4edbb",
"router.field":null,
"name":"test1-collection_1.2",
"nrtReplicas":1,
"numShards":2,
"tlogReplicas":null,
"alias":null,
"operation":"create",
"perReplicaState":null}, consider as bad message and poll out from the
queue
Is there a known incompatibility issue between Solr 9 (data node) and Solr
8 (overseer node) with CollectionAdminRequest.createCollection? This is
what we have been doing for a long time and works with both data and
overseer nodes are running Solr 8. Is there a way to get around this issue?
Thanks,
Patrick