diff --git a/solr/core/src/java/org/apache/solr/core/SolrCores.java b/solr/core/src/java/org/apache/solr/core/SolrCores.java index 52b106380d9..546686e445a 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCores.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCores.java @@ -19,17 +19,12 @@ package org.apache.solr.core; import com.google.common.collect.Lists; import org.apache.http.annotation.Experimental; import org.apache.solr.common.SolrException; -import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.logging.MDCLoggingContext; -import org.apache.solr.request.LocalSolrQueryRequest; -import org.apache.solr.request.SolrQueryRequest; -import org.apache.solr.update.CommitUpdateCommand; import org.apache.solr.util.DefaultSolrThreadFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collection; @@ -539,21 +534,22 @@ class SolrCores implements Observer { return false; } - // Let transient cache implementation tell us when it ages out a corel + // Let transient cache implementation tell us when it ages out a core @Override public void update(Observable o, Object arg) { synchronized (modifyLock) { - SolrCore core = (SolrCore) arg; - SolrQueryRequest req = new LocalSolrQueryRequest(core, new ModifiableSolrParams()); - CommitUpdateCommand cmd = new CommitUpdateCommand(req, false); - cmd.openSearcher = false; - cmd.waitSearcher = false; - try { - core.getUpdateHandler().commit(cmd); - } catch (IOException e) { - log.warn("Caught exception trying to close a transient core, ignoring as it should be benign"); - } - pendingCloses.add(core); // Essentially just queue this core up for closing. + // Erick Erickson debugging TestLazyCores. With this un-commented, we get no testLazyCores failures. +// SolrCore core = (SolrCore) arg; +// SolrQueryRequest req = new LocalSolrQueryRequest(core, new ModifiableSolrParams()); +// CommitUpdateCommand cmd = new CommitUpdateCommand(req, false); +// cmd.openSearcher = false; +// cmd.waitSearcher = false; +// try { +// core.getUpdateHandler().commit(cmd); +// } catch (IOException e) { +// log.warn("Caught exception trying to close a transient core, ignoring as it should be benign"); +// } + pendingCloses.add((SolrCore) arg); // Essentially just queue this core up for closing. modifyLock.notifyAll(); // Wakes up closer thread too } } diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java index d51c9702204..21a689640d1 100644 --- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java +++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java @@ -813,7 +813,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState @Override public void close() throws IOException { log.debug("closing " + this); - + commitTracker.close(); softCommitTracker.close(); diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml index ecf1f1468fc..8f90d26273d 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml @@ -43,4 +43,7 @@ A solrconfig.xml snippet containing indexConfig settings for randomized testing. to vary the lockType canset it as needed. --> ${solr.tests.lockType:single} + + ${solr.tests.infostream:false} + diff --git a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java index 6a5697a93f4..4c787d62d69 100644 --- a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java +++ b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java @@ -786,6 +786,9 @@ public class TestLazyCores extends SolrTestCaseJ4 { // Cores 2, 3, 6, 7, 8, 9 are transient @Test public void testNoCommit() throws Exception { + String infoStream = System.getProperty("solr.tests.infostream"); + System.setProperty("solr.tests.infostream","true"); + CoreContainer cc = init(); String[] coreList = new String[]{ "collection2", @@ -832,6 +835,11 @@ public class TestLazyCores extends SolrTestCaseJ4 { } finally { cc.shutdown(); } + if (infoStream != null) { + System.setProperty("solr.tests.infostream", infoStream); + } else { + System.clearProperty("solr.tests.infostream"); + } } private void add10(SolrCore core) throws IOException {