[
https://issues.apache.org/jira/browse/HDFS-9347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15062825#comment-15062825
]
Zhe Zhang commented on HDFS-9347:
---------------------------------
Thanks Wei-Chiu. New patch does look cleaner.
Actually how about just let {{anyThreadMatching}} return a boolean, and let
{{assertNoThreadsMatching}} fail if {{true}} is returned?
+1 pending a conclusion on the above.
> Invariant assumption in TestQuorumJournalManager.shutdown() is wrong
> --------------------------------------------------------------------
>
> Key: HDFS-9347
> URL: https://issues.apache.org/jira/browse/HDFS-9347
> Project: Hadoop HDFS
> Issue Type: Bug
> Reporter: Wei-Chiu Chuang
> Assignee: Wei-Chiu Chuang
> Attachments: HDFS-9347.001.patch, HDFS-9347.002.patch,
> HDFS-9347.003.patch
>
>
> The code
> {code:title=TestTestQuorumJournalManager.java|borderStyle=solid}
> @After
> public void shutdown() throws IOException {
> IOUtils.cleanup(LOG, toClose.toArray(new Closeable[0]));
>
> // Should not leak clients between tests -- this can cause flaky tests.
> // (See HDFS-4643)
> GenericTestUtils.assertNoThreadsMatching(".*IPC Client.*");
>
> if (cluster != null) {
> cluster.shutdown();
> }
> }
> {code}
> implicitly assumes when the call returns from IOUtils.cleanup() (which calls
> close() on QuorumJournalManager object), all IPC client connection threads
> are terminated. However, there is no internal implementation that enforces
> this assumption. Even if the bug reported in HADOOP-12532 is fixed, the
> internal code still only ensures IPC connections are terminated, but not the
> thread.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)