[
https://issues.apache.org/jira/browse/HDFS-9612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wei-Chiu Chuang updated HDFS-9612:
----------------------------------
Attachment: HDFS-9612.007.patch
Rev07:
Thanks [~yzhangal] for comments. I uploaded a patch that address most issues.
The change of slf4j was used in conjunction of GenericTestUtils.setLogLevel to
set log level to DEBUG. GenericTestUtils.setLogLevel is a useful tool, but
unfortunately requires slf4j. It is not a necessary part of the fix, so I
removed them.
About the tests, they use GenericTestUtils.waitForThreadTermination() which
periodically checks to see if there are any threads whose name matches the
pattern "pool-.*thread.*" (it's regular expression). These are the threads
created by ExecutorService. If the fix works, those threads should terminate
right away after ProducerConsumer.shutdown() is called.
> DistCp worker threads are not terminated after jobs are done.
> -------------------------------------------------------------
>
> Key: HDFS-9612
> URL: https://issues.apache.org/jira/browse/HDFS-9612
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: distcp
> Affects Versions: 2.8.0
> Reporter: Wei-Chiu Chuang
> Assignee: Wei-Chiu Chuang
> Attachments: HDFS-9612.001.patch, HDFS-9612.002.patch,
> HDFS-9612.003.patch, HDFS-9612.004.patch, HDFS-9612.005.patch,
> HDFS-9612.006.patch, HDFS-9612.007.patch
>
>
> In HADOOP-11827, a producer-consumer style thread pool was introduced to
> parallelize the task of listing files/directories.
> We have a use case where a distcp job is run during the commit phase of a MR2
> job. However, it was found distcp does not terminate ProducerConsumer thread
> pools properly. Because threads are not terminated, those MR2 jobs never
> finish.
> In a more typical use case where distcp is run as a standalone job, those
> threads are terminated forcefully when the java process is terminated. So
> these leaked threads did not become a problem.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)