Return-Path: Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: (qmail 46751 invoked from network); 4 Mar 2011 03:44:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Mar 2011 03:44:43 -0000 Received: (qmail 87815 invoked by uid 500); 4 Mar 2011 03:44:43 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 87774 invoked by uid 500); 4 Mar 2011 03:44:43 -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 87765 invoked by uid 99); 4 Mar 2011 03:44:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Mar 2011 03:44:43 +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, 04 Mar 2011 03:44:40 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2C7702388A32; Fri, 4 Mar 2011 03:44:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1077133 - in /hadoop/common/branches/branch-0.20-security-patches/src: mapred/org/apache/hadoop/mapred/TaskTracker.java test/org/apache/hadoop/mapred/TestTaskTrackerLocalization.java Date: Fri, 04 Mar 2011 03:44:19 -0000 To: common-commits@hadoop.apache.org From: omalley@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110304034419.2C7702388A32@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: omalley Date: Fri Mar 4 03:44:18 2011 New Revision: 1077133 URL: http://svn.apache.org/viewvc?rev=1077133&view=rev Log: commit f1e5da4123246f98124a516e93ecdfa3104d9f9c Author: Hemanth Yamijala Date: Fri Jan 29 00:00:30 2010 +0530 MAPREDUCE:842 (follow-up patch to fix a backport bug) from https://issues.apache.org/jira/secure/attachment/12431690/MR-842-follow-up.patch +++ b/YAHOO-CHANGES.txt + MAPREDUCE-842. Fixing a bug in the earlier version of the patch + related to improper localization of the job token file. + (Ravi Gummadi via yhemanth) + Modified: hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java hadoop/common/branches/branch-0.20-security-patches/src/test/org/apache/hadoop/mapred/TestTaskTrackerLocalization.java Modified: hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java?rev=1077133&r1=1077132&r2=1077133&view=diff ============================================================================== --- hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java (original) +++ hadoop/common/branches/branch-0.20-security-patches/src/mapred/org/apache/hadoop/mapred/TaskTracker.java Fri Mar 4 03:44:18 2011 @@ -922,8 +922,7 @@ public class TaskTracker rjob.jobConf = localJobConf; rjob.keepJobFiles = ((localJobConf.getKeepTaskFilesPattern() != null) || localJobConf.getKeepFailedTaskFiles()); - // save local copy of JobToken file - localizeJobTokenFile(t.getUser(), jobId, localJobConf); + TokenStorage ts = TokenCache.loadTokens(rjob.jobConf); Token jt = (Token)ts.getJobToken(); getJobTokenSecretManager().addTokenForJob(jobId.toString(), jt); @@ -985,6 +984,9 @@ public class TaskTracker // Download the job.jar for this job from the system FS localizeJobJarFile(userName, jobId, userFs, localJobConf); + // save local copy of JobToken file + localizeJobTokenFile(userName, jobId, localJobConf); + return localJobConf; } Modified: hadoop/common/branches/branch-0.20-security-patches/src/test/org/apache/hadoop/mapred/TestTaskTrackerLocalization.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/test/org/apache/hadoop/mapred/TestTaskTrackerLocalization.java?rev=1077133&r1=1077132&r2=1077133&view=diff ============================================================================== --- hadoop/common/branches/branch-0.20-security-patches/src/test/org/apache/hadoop/mapred/TestTaskTrackerLocalization.java (original) +++ hadoop/common/branches/branch-0.20-security-patches/src/test/org/apache/hadoop/mapred/TestTaskTrackerLocalization.java Fri Mar 4 03:44:18 2011 @@ -33,7 +33,10 @@ import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.LocalDirAllocator; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.server.tasktracker.Localizer; +import org.apache.hadoop.mapreduce.security.SecureShuffleUtils; +import org.apache.hadoop.mapreduce.security.token.JobTokenIdentifier; import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hadoop.security.token.Token; import org.apache.hadoop.util.Shell; import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.mapred.JvmManager.JvmEnv; @@ -129,6 +132,7 @@ public class TestTaskTrackerLocalization // for test case system FS is the local FS tracker.systemFS = FileSystem.getLocal(trackerFConf); + tracker.systemDirectory = new Path(TEST_ROOT_DIR.getAbsolutePath()); tracker.setLocalFileSystem(tracker.systemFS); taskTrackerUGI = UserGroupInformation.login(trackerFConf); @@ -142,6 +146,9 @@ public class TestTaskTrackerLocalization new MapTask(jobConfFile.toURI().toString(), taskId, 1, null, 1); task.setConf(jobConf); // Set conf. Set user name in particular. + // create jobTokens file + uploadJobTokensFile(); + taskController = new DefaultTaskController(); taskController.setConf(trackerFConf); taskController.setup(); @@ -189,6 +196,25 @@ public class TestTaskTrackerLocalization return jobConfFile; } + /** + * create fake JobTokens file + * @return + * @throws IOException + */ + protected void uploadJobTokensFile() throws IOException { + + File dir = new File(TEST_ROOT_DIR, jobId.toString()); + if(!dir.exists()) + assertTrue("faild to create dir="+dir.getAbsolutePath(), dir.mkdirs()); + + File jobTokenFile = new File(dir, SecureShuffleUtils.JOB_TOKEN_FILENAME); + FileOutputStream fos = new FileOutputStream(jobTokenFile); + java.io.DataOutputStream out = new java.io.DataOutputStream(fos); + Token jt = new Token(); + jt.write(out); // writing empty file, we don't need the keys for this test + out.close(); + } + @Override protected void tearDown() throws Exception {