Skip to content

Commit 381fa13

Browse files
authored
[fix][test] Fix thread resource leaks in tests and PrometheusMetricsProvider (#25487)
1 parent 0f97cba commit 381fa13

4 files changed

Lines changed: 22 additions & 1 deletion

File tree

jetty-upgrade/bookkeeper-prometheus-metrics-provider/src/main/java/org/apache/pulsar/metrics/prometheus/bookkeeper/PrometheusMetricsProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
// CHECKSTYLE.OFF: IllegalImport
2222

2323
import com.google.common.annotations.VisibleForTesting;
24+
import com.google.common.util.concurrent.MoreExecutors;
2425
import io.netty.util.concurrent.DefaultThreadFactory;
2526
import io.netty.util.internal.PlatformDependent;
2627
import io.prometheus.client.Collector;
@@ -171,6 +172,9 @@ public void stop() {
171172
ThreadRegistry.clear();
172173
}
173174
}
175+
if (executor != null) {
176+
MoreExecutors.shutdownAndAwaitTermination(executor, 5, TimeUnit.SECONDS);
177+
}
174178
}
175179

176180
@Override

pulsar-broker-auth-athenz/src/test/java/org/apache/pulsar/broker/authentication/AuthenticationProviderAthenzTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.Properties;
3232
import javax.naming.AuthenticationException;
3333
import org.apache.pulsar.broker.ServiceConfiguration;
34+
import org.testng.annotations.AfterClass;
3435
import org.testng.annotations.BeforeClass;
3536
import org.testng.annotations.Test;
3637

@@ -57,6 +58,13 @@ public void setup() throws Exception {
5758
System.setProperty(ZpeConsts.ZPE_PROP_ATHENZ_CONF, "./src/test/resources/athenz.conf.test");
5859
}
5960

61+
@AfterClass(alwaysRun = true)
62+
public void cleanup() throws Exception {
63+
if (provider != null) {
64+
provider.close();
65+
}
66+
}
67+
6068
@Test
6169
public void testInitilizeFromSystemPropeties() {
6270
System.setProperty("pulsar.athenz.domain.names", "test_provider");

pulsar-metadata/src/test/java/org/apache/bookkeeper/replication/BookKeeperClusterTestCase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import static org.apache.pulsar.common.util.PortManager.nextLockedFreePort;
2929
import static org.testng.Assert.assertFalse;
3030
import com.google.common.base.Stopwatch;
31+
import com.google.common.util.concurrent.MoreExecutors;
3132
import java.io.File;
3233
import java.io.IOException;
3334
import java.lang.reflect.Method;
@@ -227,7 +228,7 @@ public void tearDown() throws Exception {
227228
tearDownException = e;
228229
}
229230

230-
executor.shutdownNow();
231+
MoreExecutors.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS);
231232

232233
LOG.info("Tearing down test {} in {} ms.", testName, sw.elapsed(TimeUnit.MILLISECONDS));
233234
if (tearDownException != null) {

pulsar-transaction/coordinator/src/test/java/org/apache/pulsar/transaction/coordinator/TransactionMetadataStoreProviderTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.apache.pulsar.transaction.coordinator.impl.TxnLogBufferedWriterConfig;
3535
import org.apache.pulsar.transaction.coordinator.proto.TxnStatus;
3636
import org.testng.annotations.AfterClass;
37+
import org.testng.annotations.AfterMethod;
3738
import org.testng.annotations.BeforeMethod;
3839
import org.testng.annotations.DataProvider;
3940
import org.testng.annotations.Factory;
@@ -72,6 +73,13 @@ public void setup() throws Exception {
7273
new TxnLogBufferedWriterConfig(), transactionTimer).get();
7374
}
7475

76+
@AfterMethod(alwaysRun = true)
77+
public void teardown() throws Exception {
78+
if (store != null) {
79+
store.closeAsync().get(5, TimeUnit.SECONDS);
80+
}
81+
}
82+
7583
@AfterClass
7684
public void cleanup(){
7785
transactionTimer.stop();

0 commit comments

Comments
 (0)