Description
Steps to reproduce:
- Create collection using a bad configset that has some errors, due to which collection creation fails.
- Now, create a collection using the same name, but a good configset. This fails sometimes (about 25-30% of the times, according to my rough estimate).
Here's what happens during the second step (can be seen from stacktrace below):
- In CoreContainer's create(CoreDescriptor, boolean, boolean), there's a line {{ zkSys.getZkController().preRegister(dcore);}}.
- This calls ZkController's publish(), which in turn calls CoreContainer's getCore() method. This call should return null (since previous attempt of core creation didn't succeed). But, it throws the exception associated with the previous failure.
Here's the stack trace for the same.
Caused by: org.apache.solr.common.SolrException: SolrCore 'newcollection2_shard1_replica1' is not available due to init failure: blahblah
at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:1312)
at org.apache.solr.cloud.ZkController.publish(ZkController.java:1225)
at org.apache.solr.cloud.ZkController.preRegister(ZkController.java:1399)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:945)
While working on SOLR-6736, I ran into this (nasty?) issue. I'll try to isolate this into a standalone test that demonstrates this issue. Otherwise, as of now, this can be seen in the SOLR-6736's testUploadWithScriptUpdateProcessor() test (which tries to re-create the collection, but sometimes fails).