Hi Theo, If you think there is a thread leakage problem. You can create a JIRA issue and write a detailed description.
Ping @Gary Yao <g...@data-artisans.com> and @Zhu Zhu <reed...@gmail.com> to help to locate and analyze this problem? Best, Vino Theo Diefenthal <theo.diefent...@scoop-software.de> 于2019年11月14日周四 上午3:16写道: > I included a Solr End2End test in my project, inheriting from Junit 4 > SolrCloudTestCase. > > The solr-test-framework for junit 4 makes use of > com.carrotsearch.randomizedtesting > which automatically tests for thread leakages on test end. In my other > projects, that tool doesn't produce any problems. > When used in a test together with a Flink LocalExecutionEnvironment, it > will prevent the test from suceeding due the following error at shutdown > phase: > > com.carrotsearch.randomizedtesting.ThreadLeakError: 3 threads leaked from > SUITE scope at somepackage.E2ETest: > 1) Thread[id=170, name=FlinkCompletableFutureDelayScheduler-thread-1, > state=TIMED_WAITING, group=TGRP-E2ETest] > at sun.misc.Unsafe.park(Native Method) > at > java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) > at > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093) > at > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) > at > java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 2) Thread[id=29, name=metrics-meter-tick-thread-2, state=WAITING, > group=TGRP-E2ETest] > at sun.misc.Unsafe.park(Native Method) > at > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) > at > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088) > at > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) > at > java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 3) Thread[id=28, name=metrics-meter-tick-thread-1, state=TIMED_WAITING, > group=TGRP-E2ETest] > at sun.misc.Unsafe.park(Native Method) > at > java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) > at > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093) > at > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) > at > java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > > at __randomizedtesting.SeedInfo.seed([CC6ED531AFECBAF6]:0) > > Note that I can suppress the errors easily via setting > @ThreadLeakScope(ThreadLeakScope.Scope.NONE) in my tests, but I just want > to point out possible thread leaks in the mailing list here. As the first > thread is named FlinkCompletableFutureDelayScheduler, I suggest that Flink > doesn't shut down some of its multitude of threads nicely in a local > execution environment. My question: Is that some kind of problem / thread > leakage in Flink or is it just a false warning? > > > >