From 956c1ab5f1cd14b0e44e19cfb2ffeb23a5608064 Mon Sep 17 00:00:00 2001 From: Gus Heck Date: Thu, 13 May 2021 21:12:12 -0400 Subject: [PATCH] SOLR-15405 AwaitsFix enough HDFS tests to get 3 consecutive runs with no hdfs failures. --- .../cloud/hdfs/HDFSCollectionsAPITest.java | 2 + .../solr/index/hdfs/CheckHdfsIndexTest.java | 2 + .../apache/solr/search/TestRecoveryHdfs.java | 38 ++++++++++--------- .../apache/solr/update/TestHdfsUpdateLog.java | 18 +++++---- 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HDFSCollectionsAPITest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HDFSCollectionsAPITest.java index d88b1d1fbf43..9386b9153ad6 100644 --- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HDFSCollectionsAPITest.java +++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HDFSCollectionsAPITest.java @@ -19,6 +19,7 @@ import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters; import org.apache.hadoop.hdfs.MiniDFSCluster; +import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.QuickPatchThreadsFilter; import org.apache.solr.SolrIgnoredThreadsFilter; import org.apache.solr.client.solrj.SolrQuery; @@ -37,6 +38,7 @@ QuickPatchThreadsFilter.class, BadHdfsThreadsFilter.class // hdfs currently leaks thread(s) }) +@LuceneTestCase.AwaitsFix(bugUrl = "SOLR-15405") public class HDFSCollectionsAPITest extends SolrCloudTestCase { private static MiniDFSCluster dfsCluster; diff --git a/solr/core/src/test/org/apache/solr/index/hdfs/CheckHdfsIndexTest.java b/solr/core/src/test/org/apache/solr/index/hdfs/CheckHdfsIndexTest.java index 7285d346e62f..3b08babd3b9d 100644 --- a/solr/core/src/test/org/apache/solr/index/hdfs/CheckHdfsIndexTest.java +++ b/solr/core/src/test/org/apache/solr/index/hdfs/CheckHdfsIndexTest.java @@ -24,6 +24,7 @@ import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.lucene.index.BaseTestCheckIndex; import org.apache.lucene.store.Directory; +import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.QuickPatchThreadsFilter; import org.apache.solr.SolrIgnoredThreadsFilter; import org.apache.solr.SolrTestCaseJ4; @@ -49,6 +50,7 @@ BadHdfsThreadsFilter.class // hdfs currently leaks thread(s) }) @SolrTestCaseJ4.SuppressSSL +@LuceneTestCase.AwaitsFix(bugUrl = "SOLR-15405") // commented out on: 24-Dec-2018 @LuceneTestCase.BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // 12-Jun-2018 public class CheckHdfsIndexTest extends AbstractFullDistribZkTestBase { private static MiniDFSCluster dfsCluster; diff --git a/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java b/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java index eb4592c8daf0..17a1d015a000 100644 --- a/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java +++ b/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java @@ -39,6 +39,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.MiniDFSCluster; +import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.QuickPatchThreadsFilter; import org.apache.solr.SolrIgnoredThreadsFilter; import org.apache.solr.SolrTestCaseJ4; @@ -68,6 +69,7 @@ BadHdfsThreadsFilter.class // hdfs currently leaks thread(s) }) // TODO: longer term this should be combined with TestRecovery somehow ?? +@LuceneTestCase.AwaitsFix(bugUrl = "SOLR-15405") public class TestRecoveryHdfs extends SolrTestCaseJ4 { // means that we've seen the leader and have version info (i.e. we are a non-leader replica) private static final String FROM_LEADER = DistribPhase.FROMLEADER.toString(); @@ -78,17 +80,17 @@ public class TestRecoveryHdfs extends SolrTestCaseJ4 { private static MiniDFSCluster dfsCluster; private static String hdfsUri; private static FileSystem fs; - + @After public void afterTest() { TestInjection.reset(); // do after every test, don't wait for AfterClass } - + @BeforeClass public static void beforeClass() throws Exception { dfsCluster = HdfsTestUtil.setupClass(createTempDir().toFile().getAbsolutePath()); hdfsUri = HdfsTestUtil.getURI(dfsCluster); - + try { URI uri = new URI(hdfsUri); Configuration conf = HdfsTestUtil.getClientConfiguration(dfsCluster); @@ -98,10 +100,10 @@ public static void beforeClass() throws Exception { } System.setProperty("solr.ulog.dir", hdfsUri + "/solr/shard1"); - + initCore("solrconfig-tlog.xml","schema15.xml"); } - + @AfterClass public static void afterClass() throws Exception { IOUtils.closeQuietly(fs); @@ -123,10 +125,10 @@ public static void afterClass() throws Exception { @Test public void testReplicationFactor() throws Exception { - clearIndex(); - + clearIndex(); + HdfsUpdateLog ulog = (HdfsUpdateLog) h.getCore().getUpdateHandler().getUpdateLog(); - + assertU(commit()); addAndGetVersion(sdoc("id", "REP1"), null); assertU(commit()); @@ -140,10 +142,10 @@ public void testReplicationFactor() throws Exception { break; } } - + assertTrue("Expected to find tlogs with a replication factor of 2", foundRep2); } - + @Test public void testLogReplay() throws Exception { try { @@ -650,7 +652,7 @@ public void testCleanShutdown() throws Exception { req().close(); } } - + private void addDocs(int nDocs, int start, LinkedList versions) throws Exception { for (int i=0; i