steveloughran opened a new pull request #1442: HADOOP-16570. S3A committers 
leak threads on job/task commit.
URL: https://github.com/apache/hadoop/pull/1442
 
 
   This patch explicitly shuts down the thread pool in job cleanup and after 
task commit, abort, job abort and job commit.
   
   The alternative strategy would to be to always destroy the threads in the 
same method they were used, but as two operations are normally parallelized 
back-to-back: listing pending .files and then committing or aborting them, 
retaining the pool is useful. And there isn't any close() method or similar in 
the OutputCommitter interface to place it.
   
   To test this, a probe for the committer having a thread pool was added, and 
the AbstractITCommitProtocol test extended to verify that there was no thread 
pool after the various commit and abort lifecycle operations.
   
   To verify that the tests themselves were valid, the destroyThreadPool() 
initially *did not* actually destroy the pool; the fact that the modified tests 
then all failed providesd evidence that all paths followed in those tests 
successfully cleaned up. Once the method did close the thread pool, all these 
failing tests passed.
   
   Change-Id: Ib2765d70aae2658535e07da268899d72824094f4
   Note: I also switched to the HadoopExecutors thread pool factory; I 
considered moving to one of the caching thread pools but decided that I'd make 
this change simpler for ease of backport. For a trunk-only fix I'd consider 
asking the target S3A FS for its store context and creating a thread pool of 
it, which would just be a restricted fraction of the store's own pool.
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to