Return-Path: X-Original-To: apmail-hadoop-common-commits-archive@www.apache.org Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id F0830105D1 for ; Fri, 5 Jul 2013 03:21:42 +0000 (UTC) Received: (qmail 88000 invoked by uid 500); 5 Jul 2013 03:21:42 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 87962 invoked by uid 500); 5 Jul 2013 03:21:41 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 87955 invoked by uid 99); 5 Jul 2013 03:21:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jul 2013 03:21:41 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Jul 2013 03:21:39 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 0B0E02388860 for ; Fri, 5 Jul 2013 03:21:18 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1499905 - in /hadoop/common/branches/branch-1.2/src: mapred/org/apache/hadoop/mapred/CleanupQueue.java test/org/apache/hadoop/mapred/TestCleanupQueue.java Date: Fri, 05 Jul 2013 03:21:17 -0000 To: common-commits@hadoop.apache.org From: acmurthy@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130705032118.0B0E02388860@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: acmurthy Date: Fri Jul 5 03:21:17 2013 New Revision: 1499905 URL: http://svn.apache.org/r1499905 Log: Merge -c 1499904 from branch-1 to branch-1.2 to fix MAPREDUCE-5351. Addedndum patch to ensure we don't incorrectly close wrong filesystems. Contributed by Sandy Ryza. Modified: hadoop/common/branches/branch-1.2/src/mapred/org/apache/hadoop/mapred/CleanupQueue.java hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/mapred/TestCleanupQueue.java Modified: hadoop/common/branches/branch-1.2/src/mapred/org/apache/hadoop/mapred/CleanupQueue.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/mapred/org/apache/hadoop/mapred/CleanupQueue.java?rev=1499905&r1=1499904&r2=1499905&view=diff ============================================================================== --- hadoop/common/branches/branch-1.2/src/mapred/org/apache/hadoop/mapred/CleanupQueue.java (original) +++ hadoop/common/branches/branch-1.2/src/mapred/org/apache/hadoop/mapred/CleanupQueue.java Fri Jul 5 03:21:17 2013 @@ -112,8 +112,10 @@ public class CleanupQueue { return null; } finally { // So that we don't leave an entry in the FileSystem cache for - // every job. - fs.close(); + // every UGI that a job is submitted with. + if (ugi != null) { + fs.close(); + } } } }); Modified: hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/mapred/TestCleanupQueue.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/mapred/TestCleanupQueue.java?rev=1499905&r1=1499904&r2=1499905&view=diff ============================================================================== --- hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/mapred/TestCleanupQueue.java (original) +++ hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/mapred/TestCleanupQueue.java Fri Jul 5 03:21:17 2013 @@ -33,20 +33,35 @@ public class TestCleanupQueue { @Test (timeout = 2000) public void testCleanupQueueClosesFilesystem() throws IOException, InterruptedException { + Configuration conf = new Configuration(); File file = new File("afile.txt"); file.createNewFile(); Path path = new Path(file.getAbsoluteFile().toURI()); - FileSystem.get(new Configuration()); + FileSystem.get(conf); Assert.assertEquals(1, FileSystem.getCacheSize()); + // With UGI, should close FileSystem CleanupQueue cleanupQueue = new CleanupQueue(); - PathDeletionContext context = new PathDeletionContext(path, - new Configuration(), UserGroupInformation.getLoginUser()); + PathDeletionContext context = new PathDeletionContext(path, conf, + UserGroupInformation.getLoginUser()); cleanupQueue.addToQueue(context); while (FileSystem.getCacheSize() > 0) { Thread.sleep(100); } + + file.createNewFile(); + FileSystem.get(conf); + Assert.assertEquals(1, FileSystem.getCacheSize()); + + // Without UGI, should not close FileSystem + context = new PathDeletionContext(path, conf); + cleanupQueue.addToQueue(context); + + while (file.exists()) { + Thread.sleep(100); + } + Assert.assertEquals(1, FileSystem.getCacheSize()); } }