Ted Yu created HADOOP-15290:
-------------------------------
Summary: Imprecise assertion in FileStatus w.r.t. symlink
Key: HADOOP-15290
URL: https://issues.apache.org/jira/browse/HADOOP-15290
Project: Hadoop Common
Issue Type: Bug
Reporter: Ted Yu
In HBASE-20123, I logged the following stack trace:
{code}
2018-03-03 14:46:10,858 ERROR [Time-limited test]
mapreduce.MapReduceBackupCopyJob$BackupDistCp(237): java.io.IOException: Path
hdfs://localhost:40578/backupUT/.tmp/backup_1520088356047 is not a symbolic link
java.io.IOException: Path
hdfs://localhost:40578/backupUT/.tmp/backup_1520088356047 is not a symbolic link
at org.apache.hadoop.fs.FileStatus.getSymlink(FileStatus.java:338)
at org.apache.hadoop.fs.FileStatus.readFields(FileStatus.java:461)
at
org.apache.hadoop.tools.CopyListingFileStatus.readFields(CopyListingFileStatus.java:155)
at
org.apache.hadoop.io.SequenceFile$Reader.getCurrentValue(SequenceFile.java:2308)
at
org.apache.hadoop.tools.CopyListing.validateFinalListing(CopyListing.java:163)
at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:91)
at
org.apache.hadoop.tools.GlobbedCopyListing.doBuildListing(GlobbedCopyListing.java:90)
at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:84)
at org.apache.hadoop.tools.DistCp.createInputFileListing(DistCp.java:382)
at
org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob$BackupDistCp.createInputFileListing(MapReduceBackupCopyJob.java:297)
{code}
[[email protected]] pointed out that the assertion in FileStatus.java is not
accurate:
{code}
assert (isDirectory() && getSymlink() == null) || !isDirectory();
{code}
{quote}
It's assuming that getSymlink() returns null if there is no symlink, but
instead it raises and exception.
{quote}
Steve proposed the following replacement:
{code}
assert (!(isDirectory() && isSymlink())
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]