Add some check for MultiInstanceTest (#11139)

* Add some check for MultiInstanceTest

* Add some check for MultiInstanceTest

* Add some check for MultiInstanceTest
This commit is contained in:
Albumen Kevin 2022-12-15 12:40:36 +08:00 committed by GitHub
parent a540222c58
commit 6cda325133
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 4 deletions

View File

@ -89,6 +89,9 @@ public class GlobalResourcesRepository {
if (executorService == null || executorService.isShutdown()) {
synchronized (this) {
if (executorService == null || executorService.isShutdown()) {
if (logger.isInfoEnabled()) {
logger.info("Creating global shared handler ...");
}
executorService = Executors.newCachedThreadPool(new NamedThreadFactory("Dubbo-global-shared-handler", true));
}
}

View File

@ -200,6 +200,9 @@ public class FrameworkExecutorRepository implements Disposable {
shutdownExecutorServices(registryNotificationExecutorRing.listItems(),
"registryNotificationExecutorRing");
// mappingRefreshingExecutor
shutdownExecutorService(mappingRefreshingExecutor,
"mappingRefreshingExecutor");
}
private void shutdownExecutorServices(List<? extends ExecutorService> executorServices, String msg) {

View File

@ -74,7 +74,7 @@ class MultiInstanceTest {
registryConfig = new RegistryConfig(ZookeeperRegistryCenterConfig.getConnectionAddress1());
// pre-check threads
//precheckUnclosedThreads();
precheckUnclosedThreads();
}
@AfterEach
@ -82,14 +82,18 @@ class MultiInstanceTest {
FrameworkModel.destroyAll();
// check threads
//checkUnclosedThreads();
checkUnclosedThreads();
}
private static Map<Thread, StackTraceElement[]> precheckUnclosedThreads() throws IOException {
private static Map<Thread, StackTraceElement[]> precheckUnclosedThreads() {
// create a special DubboTestChecker
if (testChecker == null) {
testChecker = new DubboTestChecker();
testChecker.init(null);
try {
testChecker.init(null);
} catch (IOException e) {
throw new RuntimeException(e);
}
testClassName = MultiInstanceTest.class.getName();
}
return testChecker.checkUnclosedThreads(testClassName, 0);

View File

@ -254,6 +254,7 @@ public class DubboTestChecker implements TestExecutionListener {
.filter(thread -> !StringUtils.startsWithAny(thread.getName(),
"Reference Handler", "Finalizer", "Signal Dispatcher", "Attach Listener", "process reaper", "main" // jvm
, "surefire-forkedjvm-" // surefire plugin
, "globalEventExecutor"
))
.filter(thread -> !unclosedThreadMap.containsKey(thread))
.collect(Collectors.toList());