JUnit 4.13.1 has a bug that is reported in Junit issue-1652 Timeout ThreadGroups should not be destroyed
After upgrading Junit to 4.13.1 in
HADOOP-17602, TestBlockRecovery started to fail regularly in branch-3.x and branch-2.10.
While investigating the failure in branch-2.10
HDFS-16072, I found out that the bug is the main reason TestBlockRecovery started to fail because the timeout of the Junit would try to close a ThreadGroup that has been already closed which throws the java.lang.IllegalThreadStateException.
The bug has been fixed in Junit-4.13.2
HDFS-15940 did not address the root cause of the problem. Eventually, Splitting the TestBlockRecovery hid the bug, but the upgrade needs to be done so that the problem does not show up in another unit test.