Return-Path: X-Original-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1B72D179C4 for ; Tue, 17 Mar 2015 18:56:46 +0000 (UTC) Received: (qmail 6980 invoked by uid 500); 17 Mar 2015 18:56:39 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 6932 invoked by uid 500); 17 Mar 2015 18:56:39 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 6919 invoked by uid 99); 17 Mar 2015 18:56:39 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Mar 2015 18:56:39 +0000 Date: Tue, 17 Mar 2015 18:56:39 +0000 (UTC) From: "Lei (Eddy) Xu (JIRA)" To: common-issues@hadoop.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HADOOP-11724) DistCp throws NPE when the target directory is root. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HADOOP-11724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lei (Eddy) Xu updated HADOOP-11724: ----------------------------------- Attachment: HADOOP-11724.000.patch Check whether parent directory is {{null}} in {{CopyCommitter#cleanupTempFiles}}. > DistCp throws NPE when the target directory is root. > ---------------------------------------------------- > > Key: HADOOP-11724 > URL: https://issues.apache.org/jira/browse/HADOOP-11724 > Project: Hadoop Common > Issue Type: Bug > Affects Versions: 2.6.0 > Reporter: Lei (Eddy) Xu > Assignee: Lei (Eddy) Xu > Priority: Minor > Attachments: HADOOP-11724.000.patch > > > Distcp throws NPE when the target directory is root. It is due to {{CopyCommitter#cleanupTempFiles}} attempts to delete parent directory of root, which is {{null}}: > {code} > $ hadoop distcp pom.xml hdfs://localhost/ > 15/03/17 11:17:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable > 15/03/17 11:17:45 INFO tools.DistCp: Input Options: DistCpOptions{atomicCommit=false, syncFolder=false, deleteMissing=false, ignoreFailures=false, maxMaps=20, sslConfigurationFile='null', copyStrategy='uniformsize', sourceFileListing=null, sourcePaths=[pom.xml], targetPath=hdfs://localhost/, targetPathExists=true, preserveRawXattrs=false} > 15/03/17 11:17:45 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id > 15/03/17 11:17:45 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId= > 15/03/17 11:17:45 INFO Configuration.deprecation: io.sort.mb is deprecated. Instead, use mapreduce.task.io.sort.mb > 15/03/17 11:17:45 INFO Configuration.deprecation: io.sort.factor is deprecated. Instead, use mapreduce.task.io.sort.factor > 15/03/17 11:17:45 INFO jvm.JvmMetrics: Cannot initialize JVM Metrics with processName=JobTracker, sessionId= - already initialized > 15/03/17 11:17:45 INFO mapreduce.JobSubmitter: number of splits:1 > 15/03/17 11:17:45 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local992233322_0001 > 15/03/17 11:17:46 INFO mapreduce.Job: The url to track the job: http://localhost:8080/ > 15/03/17 11:17:46 INFO tools.DistCp: DistCp job-id: job_local992233322_0001 > 15/03/17 11:17:46 INFO mapreduce.Job: Running job: job_local992233322_0001 > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: OutputCommitter set in config null > 15/03/17 11:17:46 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1 > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.tools.mapred.CopyCommitter > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Waiting for map tasks > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Starting task: attempt_local992233322_0001_m_000000_0 > 15/03/17 11:17:46 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1 > 15/03/17 11:17:46 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux. > 15/03/17 11:17:46 INFO mapred.Task: Using ResourceCalculatorProcessTree : null > 15/03/17 11:17:46 INFO mapred.MapTask: Processing split: file:/tmp/hadoop/mapred/staging/lei2046334351/.staging/_distcp-1889397390/fileList.seq:0+220 > 15/03/17 11:17:46 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1 > 15/03/17 11:17:46 INFO mapred.CopyMapper: Copying file:/Users/lei/work/cloudera/s3a_cp_target/pom.xml to hdfs://localhost/pom.xml > 15/03/17 11:17:46 INFO mapred.CopyMapper: Skipping copy of file:/Users/lei/work/cloudera/s3a_cp_target/pom.xml to hdfs://localhost/pom.xml > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: > 15/03/17 11:17:46 INFO mapred.Task: Task:attempt_local992233322_0001_m_000000_0 is done. And is in the process of committing > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: > 15/03/17 11:17:46 INFO mapred.Task: Task attempt_local992233322_0001_m_000000_0 is allowed to commit now > 15/03/17 11:17:46 INFO output.FileOutputCommitter: Saved output of task 'attempt_local992233322_0001_m_000000_0' to file:/tmp/hadoop/mapred/staging/lei2046334351/.staging/_distcp-1889397390/_logs/_temporary/0/task_local992233322_0001_m_000000 > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Copying file:/Users/lei/work/cloudera/s3a_cp_target/pom.xml to hdfs://localhost/pom.xml > 15/03/17 11:17:46 INFO mapred.Task: Task 'attempt_local992233322_0001_m_000000_0' done. > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Finishing task: attempt_local992233322_0001_m_000000_0 > 15/03/17 11:17:46 INFO mapred.LocalJobRunner: map task executor complete. > 15/03/17 11:17:46 INFO mapred.CopyCommitter: Remove parent: null for hdfs://localhost/ > 15/03/17 11:17:46 WARN mapred.CopyCommitter: Unable to cleanup temp files > java.lang.NullPointerException > at org.apache.hadoop.fs.Path.(Path.java:104) > at org.apache.hadoop.fs.Path.(Path.java:93) > at org.apache.hadoop.tools.mapred.CopyCommitter.deleteAttemptTempFiles(CopyCommitter.java:141) > at org.apache.hadoop.tools.mapred.CopyCommitter.cleanupTempFiles(CopyCommitter.java:130) > at org.apache.hadoop.tools.mapred.CopyCommitter.commitJob(CopyCommitter.java:83) > at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:538) > 15/03/17 11:17:46 INFO mapred.CopyCommitter: Cleaning up temporary work folder: file:/tmp/hadoop/mapred/staging/lei2046334351/.staging/_distcp-1889397390 > 15/03/17 11:17:47 INFO mapreduce.Job: Job job_local992233322_0001 running in uber mode : false > 15/03/17 11:17:47 INFO mapreduce.Job: map 100% reduce 0% > 15/03/17 11:17:47 INFO mapreduce.Job: Job job_local992233322_0001 completed successfully > 15/03/17 11:17:47 INFO mapreduce.Job: Counters: 22 > File System Counters > FILE: Number of bytes read=103917 > FILE: Number of bytes written=363277 > FILE: Number of read operations=0 > FILE: Number of large read operations=0 > FILE: Number of write operations=0 > HDFS: Number of bytes read=0 > HDFS: Number of bytes written=0 > HDFS: Number of read operations=8 > HDFS: Number of large read operations=0 > HDFS: Number of write operations=0 > Map-Reduce Framework > Map input records=1 > Map output records=1 > Input split bytes=151 > Spilled Records=0 > Failed Shuffles=0 > Merged Map outputs=0 > GC time elapsed (ms)=14 > Total committed heap usage (bytes)=163577856 > File Input Format Counters > Bytes Read=252 > File Output Format Counters > Bytes Written=70 > org.apache.hadoop.tools.mapred.CopyMapper$Counter > BYTESSKIPPED=23491 > SKIP=1 > {code} > The distcp task can still success. -- This message was sent by Atlassian JIRA (v6.3.4#6332)