This is an automated email from the ASF dual-hosted git repository.
mimaison pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new bf68f79d22f KAFKA-20619: Make DetectThreadLeak ignore CleanerImpl
threads (#22386)
bf68f79d22f is described below
commit bf68f79d22f512ea66a68c48b40f4f67c5619815
Author: Edoardo Comar <[email protected]>
AuthorDate: Thu Jun 25 11:17:33 2026 +0100
KAFKA-20619: Make DetectThreadLeak ignore CleanerImpl threads (#22386)
Add "Cleaner-" to the list of Skipped thread prefixes in
ClusterTestExtensions. It's the prefix of daemon threads of
InnocuousThreadGroup used by jdk.internal.ref.CleanerImpl.
Reviewers: Mickael Maison <[email protected]>, Ken Huang
<[email protected]>
---
.../org/apache/kafka/common/test/junit/ClusterTestExtensions.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git
a/test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/junit/ClusterTestExtensions.java
b/test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/junit/ClusterTestExtensions.java
index 6b00706ad9a..d6f1984a6e7 100644
---
a/test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/junit/ClusterTestExtensions.java
+++
b/test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/junit/ClusterTestExtensions.java
@@ -108,10 +108,12 @@ public class ClusterTestExtensions implements
TestTemplateInvocationContextProvi
private static final String ATTACH_LISTENER_THREAD_PREFIX = "Attach
Listener";
private static final String PROCESS_REAPER_THREAD_PREFIX = "process
reaper";
private static final String RMI_THREAD_PREFIX = "RMI";
+ private static final String JDK_INTERNAL_CLEANERIMPL_THREAD_PREFIX =
"Cleaner-";
+
private static final String DETECT_THREAD_LEAK_KEY = "detectThreadLeak";
private static final Set<String> SKIPPED_THREAD_PREFIX =
Set.of(METRICS_METER_TICK_THREAD_PREFIX, SCALA_THREAD_PREFIX,
FORK_JOIN_POOL_THREAD_PREFIX, JUNIT_THREAD_PREFIX,
ATTACH_LISTENER_THREAD_PREFIX, PROCESS_REAPER_THREAD_PREFIX,
- RMI_THREAD_PREFIX, SystemTimer.SYSTEM_TIMER_THREAD_PREFIX);
+ RMI_THREAD_PREFIX, SystemTimer.SYSTEM_TIMER_THREAD_PREFIX,
JDK_INTERNAL_CLEANERIMPL_THREAD_PREFIX);
@Override
public boolean supportsTestTemplate(ExtensionContext context) {
@@ -182,7 +184,9 @@ public class ClusterTestExtensions implements
TestTemplateInvocationContextProvi
}
List<Thread> threads = detectThreadLeak.newThreads();
assertTrue(threads.isEmpty(), "Thread leak detected: " +
-
threads.stream().map(Thread::getName).collect(Collectors.joining(", ")));
+ threads.stream().map(t -> {
+ return t.getThreadGroup().getName() + "/" + t.getName();
+ }).collect(Collectors.joining(", ")));
}
}