You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Gus Heck (Jira)" <ji...@apache.org> on 2020/08/03 12:48:00 UTC

[jira] [Updated] (SOLR-14706) Upgrading 8.6.0 to 8.6.1 causes collection creation to fail

     [ https://issues.apache.org/jira/browse/SOLR-14706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gus Heck updated SOLR-14706:
----------------------------
    Description: 
The following steps will reproduce a situation in which collection creation fails with this stack trace:

{code:java}
2020-08-03 12:17:58.617 INFO  (OverseerThreadFactory-22-thread-1-processing-n:192.168.2.106:8981_solr) [   ] o.a.s.c.a.c.CreateCollectionCmd Create collection test861
2020-08-03 12:17:58.751 ERROR (OverseerThreadFactory-22-thread-1-processing-n:192.168.2.106:8981_solr) [   ] o.a.s.c.a.c.OverseerCollectionMessageHandler Collection: test861 operation: create failed:org.apache.solr.common.SolrException
	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:347)
	at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:264)
	at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:517)
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:212)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Only one extra tag supported for the tag cores in {
  "cores":"#EQUAL",
  "node":"#ANY",
  "strict":"false"}
	at org.apache.solr.client.solrj.cloud.autoscaling.Clause.<init>(Clause.java:122)
	at org.apache.solr.client.solrj.cloud.autoscaling.Clause.create(Clause.java:235)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at org.apache.solr.client.solrj.cloud.autoscaling.Policy.<init>(Policy.java:144)
	at org.apache.solr.client.solrj.cloud.autoscaling.AutoScalingConfig.getPolicy(AutoScalingConfig.java:372)
	at org.apache.solr.cloud.api.collections.Assign.usePolicyFramework(Assign.java:300)
	at org.apache.solr.cloud.api.collections.Assign.usePolicyFramework(Assign.java:277)
	at org.apache.solr.cloud.api.collections.Assign$AssignStrategyFactory.create(Assign.java:661)
	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.buildReplicaPositions(CreateCollectionCmd.java:415)
	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:192)
	... 6 more

{code}

Generalized steps:
# Deploy 8.6.0 with separate data directories, create a collection to prove it's working**
# download https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-8.6.1-RC1-reva32a3ac4e43f629df71e5ae30a3330be94b095f2/solr/solr-8.6.1.tgz
# Stop the server on all nodes
# replace the 8.6.0 with 8.6.1 
# Start the server
# via the admin UI create a collection
# Observe failure warning box (with no text), check logs, find above trace

Or more exactly here are my actual commands with a checkout of the 8.6.0 tag in the working dir to which cloud.sh was configured:

# /cloud.sh new -r upgrademe 
# Create collection named test860 via admin ui with _default
# ./cloud.sh stop 
# cd upgrademe/
# cp ../8_6_1_RC1/solr-8.6.1.tgz .
# mv solr-8.6.0-SNAPSHOT old
# tar xzvf solr-8.6.1.tgz
# cd ..
# ./cloud.sh start

For those not familiar with it the first command there with cloud.sh builds the tarball in the working directory and then makes a directory named "upgrademe" copies it to "upgrademe" unpacks it, sets up a chroot based on the path in (already running separate) zookeeper, and by default starts 4 local nodes on ports 8981 to 8984 all with separate data directorys hosted under the "upgrademe" directory. 

  was:
The following steps will reproduce a situation in which collection creation fails with this stack trace:

{code:java}
2020-08-03 12:17:58.617 INFO  (OverseerThreadFactory-22-thread-1-processing-n:192.168.2.106:8981_solr) [   ] o.a.s.c.a.c.CreateCollectionCmd Create collection test861
2020-08-03 12:17:58.751 ERROR (OverseerThreadFactory-22-thread-1-processing-n:192.168.2.106:8981_solr) [   ] o.a.s.c.a.c.OverseerCollectionMessageHandler Collection: test861 operation: create failed:org.apache.solr.common.SolrException
	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:347)
	at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:264)
	at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:517)
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:212)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Only one extra tag supported for the tag cores in {
  "cores":"#EQUAL",
  "node":"#ANY",
  "strict":"false"}
	at org.apache.solr.client.solrj.cloud.autoscaling.Clause.<init>(Clause.java:122)
	at org.apache.solr.client.solrj.cloud.autoscaling.Clause.create(Clause.java:235)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at org.apache.solr.client.solrj.cloud.autoscaling.Policy.<init>(Policy.java:144)
	at org.apache.solr.client.solrj.cloud.autoscaling.AutoScalingConfig.getPolicy(AutoScalingConfig.java:372)
	at org.apache.solr.cloud.api.collections.Assign.usePolicyFramework(Assign.java:300)
	at org.apache.solr.cloud.api.collections.Assign.usePolicyFramework(Assign.java:277)
	at org.apache.solr.cloud.api.collections.Assign$AssignStrategyFactory.create(Assign.java:661)
	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.buildReplicaPositions(CreateCollectionCmd.java:415)
	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:192)
	... 6 more

{code}

Generalized steps:
# Deploy 8.6.0 with separate data directories, create a collection to prove it's working**
# download https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-8.6.1-RC1-reva32a3ac4e43f629df71e5ae30a3330be94b095f2/solr/solr-8.6.1.tgz
# Stop the server on all nodes
# replace the 8.6.0 with 8.6.1 
# Start the server
# via the admin UI create a collection
# Observe failure warning box (with no text), check logs, find above trace

Or more exactly here are my actual commands with a checkout of the 8.6.0 tag in the working dir to which cloud.sh was configured:

# /cloud.sh new -r upgrademe 
# Create collection named test860 via admin ui with _default
# ./cloud.sh stop 
# cd upgrademe/
# ../8_6_1_RC1/solr-8.6.1.tgz .
# mv solr-8.6.0-SNAPSHOT old
# tar xzvf solr-8.6.1.tgz
# cd ..
# ./cloud.sh start

For those not familiar with it the first command there with cloud.sh builds the tarball in the working directory and then makes a directory named "upgrademe" copies it to "upgrademe" unpacks it, sets up a chroot based on the path in (already running separate) zookeeper, and by default starts 4 local nodes on ports 8981 to 8984 all with separate data directorys hosted under the "upgrademe" directory. 


> Upgrading 8.6.0 to 8.6.1 causes collection creation to fail
> -----------------------------------------------------------
>
>                 Key: SOLR-14706
>                 URL: https://issues.apache.org/jira/browse/SOLR-14706
>             Project: Solr
>          Issue Type: New Feature
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: AutoScaling
>    Affects Versions: 8.6.1
>         Environment: 8.6.1 upgraded from 8.6.0
>            Reporter: Gus Heck
>            Priority: Blocker
>
> The following steps will reproduce a situation in which collection creation fails with this stack trace:
> {code:java}
> 2020-08-03 12:17:58.617 INFO  (OverseerThreadFactory-22-thread-1-processing-n:192.168.2.106:8981_solr) [   ] o.a.s.c.a.c.CreateCollectionCmd Create collection test861
> 2020-08-03 12:17:58.751 ERROR (OverseerThreadFactory-22-thread-1-processing-n:192.168.2.106:8981_solr) [   ] o.a.s.c.a.c.OverseerCollectionMessageHandler Collection: test861 operation: create failed:org.apache.solr.common.SolrException
> 	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:347)
> 	at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:264)
> 	at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:517)
> 	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:212)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: Only one extra tag supported for the tag cores in {
>   "cores":"#EQUAL",
>   "node":"#ANY",
>   "strict":"false"}
> 	at org.apache.solr.client.solrj.cloud.autoscaling.Clause.<init>(Clause.java:122)
> 	at org.apache.solr.client.solrj.cloud.autoscaling.Clause.create(Clause.java:235)
> 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> 	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
> 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
> 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> 	at org.apache.solr.client.solrj.cloud.autoscaling.Policy.<init>(Policy.java:144)
> 	at org.apache.solr.client.solrj.cloud.autoscaling.AutoScalingConfig.getPolicy(AutoScalingConfig.java:372)
> 	at org.apache.solr.cloud.api.collections.Assign.usePolicyFramework(Assign.java:300)
> 	at org.apache.solr.cloud.api.collections.Assign.usePolicyFramework(Assign.java:277)
> 	at org.apache.solr.cloud.api.collections.Assign$AssignStrategyFactory.create(Assign.java:661)
> 	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.buildReplicaPositions(CreateCollectionCmd.java:415)
> 	at org.apache.solr.cloud.api.collections.CreateCollectionCmd.call(CreateCollectionCmd.java:192)
> 	... 6 more
> {code}
> Generalized steps:
> # Deploy 8.6.0 with separate data directories, create a collection to prove it's working**
> # download https://dist.apache.org/repos/dist/dev/lucene/lucene-solr-8.6.1-RC1-reva32a3ac4e43f629df71e5ae30a3330be94b095f2/solr/solr-8.6.1.tgz
> # Stop the server on all nodes
> # replace the 8.6.0 with 8.6.1 
> # Start the server
> # via the admin UI create a collection
> # Observe failure warning box (with no text), check logs, find above trace
> Or more exactly here are my actual commands with a checkout of the 8.6.0 tag in the working dir to which cloud.sh was configured:
> # /cloud.sh new -r upgrademe 
> # Create collection named test860 via admin ui with _default
> # ./cloud.sh stop 
> # cd upgrademe/
> # cp ../8_6_1_RC1/solr-8.6.1.tgz .
> # mv solr-8.6.0-SNAPSHOT old
> # tar xzvf solr-8.6.1.tgz
> # cd ..
> # ./cloud.sh start
> For those not familiar with it the first command there with cloud.sh builds the tarball in the working directory and then makes a directory named "upgrademe" copies it to "upgrademe" unpacks it, sets up a chroot based on the path in (already running separate) zookeeper, and by default starts 4 local nodes on ports 8981 to 8984 all with separate data directorys hosted under the "upgrademe" directory. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org