This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 1c80803 SOLR-15660: Remove universal 10 second test thread leak
linger. (#377)
1c80803 is described below
commit 1c80803a555457365393cae51729e0c20e9e94ab
Author: Mark Robert Miller <[email protected]>
AuthorDate: Tue Nov 9 14:42:30 2021 -0600
SOLR-15660: Remove universal 10 second test thread leak linger. (#377)
---
.../solr/bench/MiniClusterBenchStateTest.java | 2 ++
.../solr/analytics/facet/PivotFacetTest.java | 2 ++
.../legacy/facet/LegacyFieldFacetCloudTest.java | 2 ++
.../legacy/facet/LegacyRangeFacetCloudTest.java | 3 +-
.../util/OldAnalyticsRequestConverterUnitTest.java | 2 ++
.../apache/solr/gcs/GCSIncrementalBackupTest.java | 2 ++
.../apache/solr/jaeger/TestJaegerConfigurator.java | 2 ++
...penNLPLangDetectUpdateProcessorFactoryTest.java | 2 ++
.../org/apache/solr/ltr/TestLTROnSolrCloud.java | 2 ++
.../prometheus/scraper/SolrCloudScraperTest.java | 2 ++
.../apache/solr/s3/S3IncrementalBackupTest.java | 7 +++--
.../cloud/HttpPartitionWithTlogReplicasTest.java | 2 ++
.../apache/solr/cloud/TestCloudConsistency.java | 2 ++
.../solr/cloud/TestLeaderElectionZkExpiry.java | 8 ++++--
.../org/apache/solr/cloud/TestStressLiveNodes.java | 2 ++
.../HdfsCloudIncrementalBackupTest.java | 8 +++++-
.../collections/TestHdfsCloudBackupRestore.java | 2 ++
.../solr/cloud/hdfs/HDFSCollectionsAPITest.java | 2 ++
.../cloud/hdfs/HdfsBasicDistributedZk2Test.java | 2 ++
.../cloud/hdfs/HdfsBasicDistributedZkTest.java | 2 ++
.../hdfs/HdfsChaosMonkeyNothingIsSafeTest.java | 2 ++
.../cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java | 2 ++
.../apache/solr/cloud/hdfs/HdfsNNFailoverTest.java | 2 ++
.../solr/cloud/hdfs/HdfsRecoverLeaseTest.java | 2 ++
.../apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java | 2 ++
.../cloud/hdfs/HdfsRestartWhileUpdatingTest.java | 2 ++
.../apache/solr/cloud/hdfs/HdfsSyncSliceTest.java | 2 ++
.../org/apache/solr/cloud/hdfs/HdfsTestUtil.java | 2 ++
.../apache/solr/cloud/hdfs/HdfsThreadLeakTest.java | 2 ++
.../HdfsTlogReplayBufferedWhileIndexingTest.java | 2 ++
.../cloud/hdfs/HdfsUnloadDistributedZkTest.java | 2 ++
.../hdfs/HdfsWriteToMultipleCollectionsTest.java | 2 ++
.../org/apache/solr/cloud/hdfs/StressHdfsTest.java | 2 ++
.../cluster/events/ClusterEventProducerTest.java | 4 ++-
.../apache/solr/core/HdfsDirectoryFactoryTest.java | 2 ++
.../HdfsBackupRepositoryIntegrationTest.java | 2 ++
.../org/apache/solr/handler/TestBlobHandler.java | 2 ++
.../solr/handler/TestHdfsBackupRestoreCore.java | 2 ++
.../solr/handler/admin/DaemonStreamApiTest.java | 2 ++
.../solr/handler/admin/MBeansHandlerTest.java | 3 ++
.../DistributedQueryComponentCustomSortTest.java | 2 ++
.../apache/solr/store/hdfs/HdfsDirectoryTest.java | 2 ++
.../client/solrj/io/stream/JDBCStreamTest.java | 2 ++
.../solrj/io/stream/StreamExpressionTest.java | 2 ++
.../solr/client/solrj/request/TestV2Request.java | 2 ++
.../org/apache/solr/SolrIgnoredThreadsFilter.java | 33 ++++++++++++++++------
.../src/java/org/apache/solr/SolrTestCase.java | 2 +-
.../org/apache/solr/util/BadHdfsThreadsFilter.java | 2 ++
.../solr/cloud/MiniSolrCloudClusterTest.java | 2 ++
49 files changed, 133 insertions(+), 17 deletions(-)
diff --git
a/solr/benchmark/src/test/org/apache/solr/bench/MiniClusterBenchStateTest.java
b/solr/benchmark/src/test/org/apache/solr/bench/MiniClusterBenchStateTest.java
index 431ee69..e17ed29 100644
---
a/solr/benchmark/src/test/org/apache/solr/bench/MiniClusterBenchStateTest.java
+++
b/solr/benchmark/src/test/org/apache/solr/bench/MiniClusterBenchStateTest.java
@@ -25,6 +25,7 @@ import static
org.apache.solr.bench.generators.SourceDSL.integers;
import static org.apache.solr.bench.generators.SourceDSL.longs;
import static org.apache.solr.bench.generators.SourceDSL.strings;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.lang.invoke.MethodHandles;
import java.util.Collections;
import java.util.Iterator;
@@ -44,6 +45,7 @@ import org.openjdk.jmh.runner.options.TimeValue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@ThreadLeakLingering(linger = 10)
public class MiniClusterBenchStateTest extends SolrTestCaseJ4 {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/PivotFacetTest.java
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/PivotFacetTest.java
index 28b21df..f55e812 100644
---
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/PivotFacetTest.java
+++
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/PivotFacetTest.java
@@ -16,12 +16,14 @@
*/
package org.apache.solr.analytics.facet;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.util.ArrayList;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
+@ThreadLeakLingering(linger = 0)
public class PivotFacetTest extends SolrAnalyticsFacetTestCase {
@BeforeClass
diff --git
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyFieldFacetCloudTest.java
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyFieldFacetCloudTest.java
index 78c0a0a..2753e69 100644
---
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyFieldFacetCloudTest.java
+++
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyFieldFacetCloudTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.analytics.legacy.facet;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -27,6 +28,7 @@ import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+@ThreadLeakLingering(linger = 0)
public class LegacyFieldFacetCloudTest extends
LegacyAbstractAnalyticsFacetCloudTest {
public static final int INT = 71;
public static final int LONG = 36;
diff --git
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyRangeFacetCloudTest.java
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyRangeFacetCloudTest.java
index 0de58e2..8011a00 100644
---
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyRangeFacetCloudTest.java
+++
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/facet/LegacyRangeFacetCloudTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.analytics.legacy.facet;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.util.ArrayList;
import java.util.List;
@@ -24,7 +25,7 @@ import org.apache.solr.common.util.NamedList;
import org.junit.Before;
import org.junit.Test;
-
+@ThreadLeakLingering(linger = 0)
public class LegacyRangeFacetCloudTest extends
LegacyAbstractAnalyticsFacetCloudTest{
public static final int INT = 71;
public static final int LONG = 36;
diff --git
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/util/OldAnalyticsRequestConverterUnitTest.java
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/util/OldAnalyticsRequestConverterUnitTest.java
index d7a2b47..e1ab3ef 100644
---
a/solr/contrib/analytics/src/test/org/apache/solr/analytics/util/OldAnalyticsRequestConverterUnitTest.java
+++
b/solr/contrib/analytics/src/test/org/apache/solr/analytics/util/OldAnalyticsRequestConverterUnitTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.analytics.util;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.solr.analytics.legacy.facet.LegacyAbstractAnalyticsFacetTest;
import org.apache.solr.common.params.SolrParams;
import org.junit.BeforeClass;
@@ -29,6 +30,7 @@ import static
org.apache.solr.analytics.AnalyticsRequestParser.AnalyticsValueFac
import org.apache.solr.analytics.AnalyticsRequestParser.AnalyticsFacetRequest;
import
org.apache.solr.analytics.AnalyticsRequestParser.AnalyticsRangeFacetRequest;
+@ThreadLeakLingering(linger = 10)
public class OldAnalyticsRequestConverterUnitTest extends
LegacyAbstractAnalyticsFacetTest {
String fileName = "facetWithDottedFields.txt";
diff --git
a/solr/contrib/gcs-repository/src/test/org/apache/solr/gcs/GCSIncrementalBackupTest.java
b/solr/contrib/gcs-repository/src/test/org/apache/solr/gcs/GCSIncrementalBackupTest.java
index f1389af..f89e10a 100644
---
a/solr/contrib/gcs-repository/src/test/org/apache/solr/gcs/GCSIncrementalBackupTest.java
+++
b/solr/contrib/gcs-repository/src/test/org/apache/solr/gcs/GCSIncrementalBackupTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.gcs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.cloud.api.collections.AbstractIncrementalBackupTest;
import org.junit.AfterClass;
@@ -26,6 +27,7 @@ import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;
+@ThreadLeakLingering(linger = 10)
@LuceneTestCase.SuppressCodecs({"SimpleText"}) // Backups do checksum
validation against a footer value not present in 'SimpleText'
public class GCSIncrementalBackupTest extends AbstractIncrementalBackupTest {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/contrib/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
b/solr/contrib/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
index 011b138..78e44a2 100644
---
a/solr/contrib/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
+++
b/solr/contrib/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
@@ -17,6 +17,7 @@
package org.apache.solr.jaeger;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
import io.opentracing.util.GlobalTracer;
import java.util.concurrent.TimeUnit;
@@ -33,6 +34,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
+@ThreadLeakLingering(linger = 10)
public class TestJaegerConfigurator extends SolrTestCaseJ4 {
@Rule public TestRule solrTestRules = new SystemPropertiesRestoreRule();
diff --git
a/solr/contrib/langid/src/test/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessorFactoryTest.java
b/solr/contrib/langid/src/test/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessorFactoryTest.java
index 7b95e6f..3016324 100644
---
a/solr/contrib/langid/src/test/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessorFactoryTest.java
+++
b/solr/contrib/langid/src/test/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessorFactoryTest.java
@@ -17,11 +17,13 @@
package org.apache.solr.update.processor;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.request.SolrQueryRequest;
import org.junit.Test;
+@ThreadLeakLingering(linger = 0)
public class OpenNLPLangDetectUpdateProcessorFactoryTest extends
LanguageIdentifierUpdateProcessorFactoryTestCase {
private static final String TEST_MODEL =
"opennlp-langdetect.eng-swe-spa-rus-deu.bin";
diff --git
a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
index e6fc0c8..328dcae 100644
--- a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
+++ b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTROnSolrCloud.java
@@ -15,6 +15,7 @@
*/
package org.apache.solr.ltr;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.File;
import java.util.Collections;
import java.util.List;
@@ -43,6 +44,7 @@ import org.junit.Test;
import static java.util.stream.Collectors.toList;
+@ThreadLeakLingering(linger = 10)
public class TestLTROnSolrCloud extends TestRerankBase {
private MiniSolrCloudCluster solrCluster;
diff --git
a/solr/contrib/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
b/solr/contrib/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
index 3514c20..2719e0b 100644
---
a/solr/contrib/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
+++
b/solr/contrib/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.prometheus.scraper;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -47,6 +48,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+@ThreadLeakLingering(linger = 10)
public class SolrCloudScraperTest extends PrometheusExporterTestBase {
private MetricsConfiguration configuration;
diff --git
a/solr/contrib/s3-repository/src/test/org/apache/solr/s3/S3IncrementalBackupTest.java
b/solr/contrib/s3-repository/src/test/org/apache/solr/s3/S3IncrementalBackupTest.java
index 60ee8a8..7d71bef 100644
---
a/solr/contrib/s3-repository/src/test/org/apache/solr/s3/S3IncrementalBackupTest.java
+++
b/solr/contrib/s3-repository/src/test/org/apache/solr/s3/S3IncrementalBackupTest.java
@@ -18,6 +18,7 @@
package org.apache.solr.s3;
import com.adobe.testing.s3mock.junit4.S3MockRule;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.lang.invoke.MethodHandles;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.cloud.api.collections.AbstractIncrementalBackupTest;
@@ -27,9 +28,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.regions.Region;
[email protected]({
- "SimpleText"
-}) // Backups do checksum validation against a footer value not present in
'SimpleText'
+// Backups do checksum validation against a footer value not present in
'SimpleText'
[email protected]({"SimpleText"})
+@ThreadLeakLingering(linger = 10)
public class S3IncrementalBackupTest extends AbstractIncrementalBackupTest {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionWithTlogReplicasTest.java
b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionWithTlogReplicasTest.java
index 7e101a3..f7bf65c 100644
---
a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionWithTlogReplicasTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionWithTlogReplicasTest.java
@@ -17,11 +17,13 @@
package org.apache.solr.cloud;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.SolrTestCaseJ4;
@LuceneTestCase.Slow
@SolrTestCaseJ4.SuppressSSL(bugUrl =
"https://issues.apache.org/jira/browse/SOLR-5776")
+@ThreadLeakLingering(linger = 10)
public class HttpPartitionWithTlogReplicasTest extends HttpPartitionTest {
@Override
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
index 9da145e..4829773 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java
@@ -17,6 +17,7 @@
package org.apache.solr.cloud;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.net.URI;
@@ -44,6 +45,7 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@ThreadLeakLingering(linger = 10)
public class TestCloudConsistency extends SolrCloudTestCase {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
b/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
index 6bac5e8..83fba71 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.lang.invoke.MethodHandles;
import java.nio.file.Path;
import java.util.Collections;
@@ -30,6 +31,7 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@ThreadLeakLingering(linger = 30)
public class TestLeaderElectionZkExpiry extends SolrTestCaseJ4 {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -64,7 +66,9 @@ public class TestLeaderElectionZkExpiry extends
SolrTestCaseJ4 {
server.expire(sessionId);
try {
Thread.sleep(10);
- } catch (InterruptedException e) {}
+ } catch (InterruptedException e) {
+ return;
+ }
}
}
};
@@ -92,8 +96,8 @@ public class TestLeaderElectionZkExpiry extends
SolrTestCaseJ4 {
zkController.close();
}
} finally {
- if (zc != null) zc.close();
cc.shutdown();
+ if (zc != null) zc.close();
server.shutdown();
}
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
b/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
index 06be968..0a425e2 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.Collections;
@@ -46,6 +47,7 @@ import org.slf4j.LoggerFactory;
* Does bursts of adds to live_nodes using parallel threads to and verifies
that after each
* burst a ZkStateReader detects the correct set.
*/
+@ThreadLeakLingering(linger = 10)
@Slow
public class TestStressLiveNodes extends SolrCloudTestCase {
diff --git
a/solr/core/src/test/org/apache/solr/cloud/api/collections/HdfsCloudIncrementalBackupTest.java
b/solr/core/src/test/org/apache/solr/cloud/api/collections/HdfsCloudIncrementalBackupTest.java
index c0d51d9..8bf410e 100644
---
a/solr/core/src/test/org/apache/solr/cloud/api/collections/HdfsCloudIncrementalBackupTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/api/collections/HdfsCloudIncrementalBackupTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.cloud.api.collections;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -28,6 +29,8 @@ import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.QuickPatchThreadsFilter;
+import org.apache.solr.SolrIgnoredThreadsFilter;
import org.apache.solr.cloud.hdfs.HdfsTestUtil;
import org.apache.solr.common.util.IOUtils;
import org.apache.solr.util.BadHdfsThreadsFilter;
@@ -36,8 +39,11 @@ import org.junit.BeforeClass;
@LuceneTestCase.SuppressCodecs({"SimpleText"}) // Backups do checksum
validation against a footer value not present in 'SimpleText'
@ThreadLeakFilters(defaultFilters = true, filters = {
- BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
+ SolrIgnoredThreadsFilter.class,
+ QuickPatchThreadsFilter.class,
+ BadHdfsThreadsFilter.class
})
+@ThreadLeakLingering(linger = 10)
public class HdfsCloudIncrementalBackupTest extends
AbstractIncrementalBackupTest{
public static final String SOLR_XML = "<solr>\n" +
"\n" +
diff --git
a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestHdfsCloudBackupRestore.java
b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestHdfsCloudBackupRestore.java
index a7f7c6d..28c6b7b 100644
---
a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestHdfsCloudBackupRestore.java
+++
b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestHdfsCloudBackupRestore.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.api.collections;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.net.URI;
@@ -67,6 +68,7 @@ import static
org.apache.solr.core.backup.BackupManager.ZK_STATE_DIR;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 30)
public class TestHdfsCloudBackupRestore extends
AbstractCloudBackupRestoreTestCase {
public static final String SOLR_XML = "<solr>\n" +
"\n" +
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 9386b91..b5a387e3 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
@@ -18,6 +18,7 @@
package org.apache.solr.cloud.hdfs;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.QuickPatchThreadsFilter;
@@ -39,6 +40,7 @@ import org.junit.BeforeClass;
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
@LuceneTestCase.AwaitsFix(bugUrl = "SOLR-15405")
+@ThreadLeakLingering(linger = 10)
public class HDFSCollectionsAPITest extends SolrCloudTestCase {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
index db0df8f..0e3d5bd 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -37,6 +38,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsBasicDistributedZk2Test extends BasicDistributedZk2Test {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
index bc172b3..606402a 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -37,6 +38,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsBasicDistributedZkTest extends BasicDistributedZkTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeyNothingIsSafeTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeyNothingIsSafeTest.java
index 94ace06..1608904 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeyNothingIsSafeTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeyNothingIsSafeTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -37,6 +38,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsChaosMonkeyNothingIsSafeTest extends
ChaosMonkeyNothingIsSafeTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
index 402d5cf..a92914b 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -37,6 +38,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsChaosMonkeySafeLeaderTest extends ChaosMonkeySafeLeaderTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsNNFailoverTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsNNFailoverTest.java
index f70335d..30a25ea 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsNNFailoverTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsNNFailoverTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -36,6 +37,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 40)
public class HdfsNNFailoverTest extends BasicDistributedZkTest {
private static final String COLLECTION = "collection";
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoverLeaseTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoverLeaseTest.java
index 8d8833f..ad0b4af 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoverLeaseTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoverLeaseTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.net.URI;
import java.util.HashSet;
@@ -45,6 +46,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 40)
public class HdfsRecoverLeaseTest extends SolrTestCaseJ4 {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
index 45192fe..5c9c506 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.cloud.hdfs;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.lucene.util.LuceneTestCase.Nightly;
import org.apache.lucene.util.LuceneTestCase.Slow;
@@ -34,6 +35,7 @@ import org.junit.BeforeClass;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsRecoveryZkTest extends RecoveryZkTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRestartWhileUpdatingTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRestartWhileUpdatingTest.java
index ebc6068..8f16b77 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRestartWhileUpdatingTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRestartWhileUpdatingTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.lucene.util.QuickPatchThreadsFilter;
import org.apache.lucene.util.LuceneTestCase.Slow;
@@ -35,6 +36,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsRestartWhileUpdatingTest extends RestartWhileUpdatingTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
index 31ecad8..82ff90d9 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -37,6 +38,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsSyncSliceTest extends SyncSliceTest {
private static MiniDFSCluster dfsCluster;
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
index 3872167..1babbe29 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
@@ -321,6 +321,8 @@ public class HdfsTestUtil {
}
}
try {
+ dfsCluster.getDataNodes().forEach(dataNode -> dataNode.shutdown());
+ dfsCluster.shutdownNameNodes();
dfsCluster.shutdown(true);
} catch (Error e) {
// Added in SOLR-7134
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsThreadLeakTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsThreadLeakTest.java
index 2e04ee0..f79c618 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsThreadLeakTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsThreadLeakTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
@@ -38,6 +39,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 30)
public class HdfsThreadLeakTest extends SolrTestCaseJ4 {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTlogReplayBufferedWhileIndexingTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTlogReplayBufferedWhileIndexingTest.java
index 42cfcaa..278c304 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTlogReplayBufferedWhileIndexingTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTlogReplayBufferedWhileIndexingTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.lucene.util.QuickPatchThreadsFilter;
import org.apache.lucene.util.LuceneTestCase.Slow;
@@ -35,6 +36,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsTlogReplayBufferedWhileIndexingTest extends
TlogReplayBufferedWhileIndexingTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
index 5944097..5e1f739 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.lucene.util.QuickPatchThreadsFilter;
import org.apache.lucene.util.LuceneTestCase.Slow;
@@ -35,6 +36,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsUnloadDistributedZkTest extends UnloadDistributedZkTest {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
index 46eb56a..a4ed792 100644
---
a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
@@ -61,6 +62,7 @@ import org.junit.Test;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsWriteToMultipleCollectionsTest extends BasicDistributedZkTest
{
private static final String ACOLLECTION = "acollection";
private static MiniDFSCluster dfsCluster;
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
b/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
index 551056c..dd0193b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
@@ -19,6 +19,7 @@ package org.apache.solr.cloud.hdfs;
import com.carrotsearch.randomizedtesting.annotations.Nightly;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -62,6 +63,7 @@ import java.util.concurrent.TimeUnit;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class StressHdfsTest extends BasicDistributedZkTest {
private static final String DELETE_DATA_DIR_COLLECTION = "delete_data_dir";
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
index 0ac7c4f..a96e209 100644
---
a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
+++
b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.cluster.events;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.V2Request;
@@ -51,7 +52,8 @@ import static java.util.Collections.singletonMap;
import static org.apache.solr.client.solrj.SolrRequest.METHOD.GET;
import static org.apache.solr.client.solrj.SolrRequest.METHOD.POST;
-/**
+
+@ThreadLeakLingering(linger = 0)/**
*
*/
@LogLevel("org.apache.solr.cluster.events=DEBUG")
diff --git
a/solr/core/src/test/org/apache/solr/core/HdfsDirectoryFactoryTest.java
b/solr/core/src/test/org/apache/solr/core/HdfsDirectoryFactoryTest.java
index 4253176..87337fa 100644
--- a/solr/core/src/test/org/apache/solr/core/HdfsDirectoryFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/core/HdfsDirectoryFactoryTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.core;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Path;
@@ -59,6 +60,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsDirectoryFactoryTest extends SolrTestCaseJ4 {
private static MiniDFSCluster dfsCluster;
diff --git
a/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryIntegrationTest.java
b/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryIntegrationTest.java
index 3d6ab69..a395435 100644
---
a/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryIntegrationTest.java
+++
b/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryIntegrationTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.core.backup.repository;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -41,6 +42,7 @@ import org.junit.BeforeClass;
@ThreadLeakFilters(defaultFilters = true, filters = {
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 10)
public class HdfsBackupRepositoryIntegrationTest extends
AbstractBackupRepositoryTest {
private static MiniDFSCluster dfsCluster;
private static String hdfsUri;
diff --git a/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
b/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
index 90d2388..8949d6c 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.handler;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.nio.ByteBuffer;
@@ -50,6 +51,7 @@ import org.slf4j.LoggerFactory;
import static java.util.Arrays.asList;
import static org.apache.solr.common.util.Utils.fromJSONString;
+@ThreadLeakLingering(linger = 0)
public class TestBlobHandler extends AbstractFullDistribZkTestBase {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/core/src/test/org/apache/solr/handler/TestHdfsBackupRestoreCore.java
b/solr/core/src/test/org/apache/solr/handler/TestHdfsBackupRestoreCore.java
index e4168e3..b7a70a5 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestHdfsBackupRestoreCore.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestHdfsBackupRestoreCore.java
@@ -17,6 +17,7 @@
package org.apache.solr.handler;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
@@ -63,6 +64,7 @@ import java.util.Map;
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
@SolrTestCaseJ4.SuppressSSL // Currently unknown why SSL does not work
with this test
+@ThreadLeakLingering(linger = 40)
public class TestHdfsBackupRestoreCore extends SolrCloudTestCase {
public static final String HDFS_REPO_SOLR_XML = "<solr>\n" +
"\n" +
diff --git
a/solr/core/src/test/org/apache/solr/handler/admin/DaemonStreamApiTest.java
b/solr/core/src/test/org/apache/solr/handler/admin/DaemonStreamApiTest.java
index 34227ae..91eef72 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/DaemonStreamApiTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/DaemonStreamApiTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.handler.admin;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -40,6 +41,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+@ThreadLeakLingering(linger = 60)
public class DaemonStreamApiTest extends SolrTestCaseJ4 {
private MiniSolrCloudCluster cluster;
diff --git
a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
index 22cb378..2a7a2a0 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
@@ -194,5 +194,8 @@ public class MBeansHandlerTest extends SolrTestCaseJ4 {
counter.await(30, TimeUnit.SECONDS);
runSnapshots = false;
bean.close();
+
+ reader.join();
+ modifier.join();
}
}
diff --git
a/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java
b/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java
index da467c2..c9d8661 100644
---
a/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java
+++
b/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.handler.component;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import org.apache.solr.BaseDistributedSearchTestCase;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
@@ -33,6 +34,7 @@ import java.util.Objects;
*
* @see org.apache.solr.handler.component.QueryComponent
*/
+@ThreadLeakLingering(linger = 10)
public class DistributedQueryComponentCustomSortTest extends
BaseDistributedSearchTestCase {
public DistributedQueryComponentCustomSortTest() {
diff --git
a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
index 7720046..a58c3ec 100644
--- a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
+++ b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.store.hdfs;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.util.HashSet;
@@ -48,6 +49,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
QuickPatchThreadsFilter.class,
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
+@ThreadLeakLingering(linger = 20)
public class HdfsDirectoryTest extends SolrTestCaseJ4 {
private static final int MAX_NUMBER_OF_WRITES = 10000;
diff --git
a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
index a7abfad..0adeba1 100644
---
a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
+++
b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.client.solrj.io.stream;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -53,6 +54,7 @@ import org.junit.Test;
@SuppressPointFields(bugUrl="https://issues.apache.org/jira/browse/SOLR-10960")
@LuceneTestCase.SuppressCodecs({"Lucene3x",
"Lucene40","Lucene41","Lucene42","Lucene45"})
+@ThreadLeakLingering(linger = 0)
public class JDBCStreamTest extends SolrCloudTestCase {
private static final String COLLECTIONORALIAS = "jdbc";
diff --git
a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
index c03476a..4c2b766 100644
---
a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
+++
b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.client.solrj.io.stream;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@@ -58,6 +59,7 @@ import org.junit.Test;
@Slow
@SolrTestCaseJ4.SuppressSSL
@LuceneTestCase.SuppressCodecs({"Lucene3x",
"Lucene40","Lucene41","Lucene42","Lucene45"})
+@ThreadLeakLingering(linger = 0)
public class StreamExpressionTest extends SolrCloudTestCase {
private static final String COLLECTIONORALIAS = "collection1";
diff --git
a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java
b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java
index 9c459d5..c0f89c8 100644
---
a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java
+++
b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java
@@ -17,6 +17,7 @@
package org.apache.solr.client.solrj.request;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.List;
@@ -36,6 +37,7 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@ThreadLeakLingering(linger = 0)
public class TestV2Request extends SolrCloudTestCase {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
b/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
index 3fce31d..01974f7 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr;
+import java.lang.Thread.State;
import org.apache.lucene.search.TimeLimitingCollector.TimerThread;
import com.carrotsearch.randomizedtesting.ThreadFilter;
@@ -30,7 +31,7 @@ public class SolrIgnoredThreadsFilter implements ThreadFilter
{
public boolean reject(Thread t) {
/*
* IMPORTANT! IMPORTANT!
- *
+ *
* Any threads added here should have ABSOLUTELY NO SIDE EFFECTS
* (should be stateless). This includes no references to cores or other
* test-dependent information.
@@ -40,31 +41,47 @@ public class SolrIgnoredThreadsFilter implements
ThreadFilter {
if (threadName.equals(TimerThread.THREAD_NAME)) {
return true;
}
-
+
// due to netty - will stop on it's own
if (threadName.startsWith("globalEventExecutor")) {
return true;
}
-
+
// HttpClient Connection evictor threads can take a moment to wake and
shutdown
if (threadName.startsWith("Connection evictor")) {
return true;
}
-
+
// These is a java pool for the collection stream api
if (threadName.startsWith("ForkJoinPool.")) {
return true;
}
-
+
if (threadName.startsWith("Image Fetcher")) {
return true;
}
-
+
if (threadName.startsWith("Log4j2-TF-2-AsyncLoggerConfig")) {
return true;
}
-
- return false;
+
+ if (threadName.startsWith("SessionTracker")) {
+ return true;
+ }
+
+ if (threadName.startsWith("zkConnectionManagerCallback") && t.getState()
== State.TIMED_WAITING) {
+ return true;
+ }
+
+ if (threadName.startsWith("DaemonStream")) {
+ return true;
+ }
+
+ if (threadName.startsWith("async-check-index-")) {
+ return true;
+ }
+
+ return threadName.startsWith("closeThreadPool");
}
}
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
index d9101e6..21fc34f 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
@@ -62,7 +62,7 @@ import
com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
SolrIgnoredThreadsFilter.class,
QuickPatchThreadsFilter.class
})
-@ThreadLeakLingering(linger = 10000)
+@ThreadLeakLingering(linger = 0)
public class SolrTestCase extends LuceneTestCase {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git
a/solr/test-framework/src/java/org/apache/solr/util/BadHdfsThreadsFilter.java
b/solr/test-framework/src/java/org/apache/solr/util/BadHdfsThreadsFilter.java
index c0c4a36..22b3587 100644
---
a/solr/test-framework/src/java/org/apache/solr/util/BadHdfsThreadsFilter.java
+++
b/solr/test-framework/src/java/org/apache/solr/util/BadHdfsThreadsFilter.java
@@ -39,6 +39,8 @@ public class BadHdfsThreadsFilter implements ThreadFilter {
return true;
} else if (name.startsWith("solr-hdfs-threadpool-")) { // SOLR-9515 and
HDFS-14251
return true;
+ } else if (name.startsWith("nioEventLoopGroup")) {
+ return true; // netty threads waiting for a web server stop confirm that
won't happen
}
return false;
diff --git
a/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
b/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
index fcba6b4..193e9ec 100644
---
a/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
+++
b/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.cloud;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -36,6 +37,7 @@ import org.junit.Test;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
+@ThreadLeakLingering(linger = 10)
@LuceneTestCase.SuppressSysoutChecks(bugUrl = "Solr logs to JUL")
@SolrTestCaseJ4.SuppressSSL(bugUrl =
"https://issues.apache.org/jira/browse/SOLR-15026")
public class MiniSolrCloudClusterTest extends SolrTestCaseJ4 {