[ https://issues.apache.org/jira/browse/HBASE-23664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17014607#comment-17014607 ]
Nick Dimiduk commented on HBASE-23664: -------------------------------------- I believe I understand why this is broken. It's happening only on branch-1 because that branch is using {{@Test(timeout=...)}} instead of {{HBaseClassTestRule}} to manage timeouts. One of the fixes in JUnit 4.13 is [ThreadGroup instance leaked when using Timeout rule|https://github.com/junit-team/junit4/pull/1517]. I agree with [~Jeongdae Kim] in that I suspect this is the culprit. What happens is this. The test spins up a miniCluster in {{@BeforeClass}}. The first test method that actually tries to write any data to the test cluster is one using this timeout annotation. The client's thread pool is lazily created at the time of the first puts, and thus it grab the current thread's ThreadGroup, the one managed by the first timeout-annotated test method, which is named "FailOnTimeoutGroup". After that method completes, per junit-team/junit#1517, it terminates the ThreadGroup. The client instance survives, but its ThreadGroup has been terminated. Thus the test failures. > Upgrade JUnit to 4.13 > --------------------- > > Key: HBASE-23664 > URL: https://issues.apache.org/jira/browse/HBASE-23664 > Project: HBase > Issue Type: Task > Components: integration tests, test > Reporter: Nick Dimiduk > Assignee: Nick Dimiduk > Priority: Minor > Fix For: 3.0.0, 2.3.0 > > > New JUnit released a week ago. Let's give it a spin. > https://github.com/junit-team/junit4/blob/master/doc/ReleaseNotes4.13.md -- This message was sent by Atlassian Jira (v8.3.4#803005)