[ 
https://issues.apache.org/jira/browse/HDFS-4732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13639217#comment-13639217
 ] 

Chris Nauroth commented on HDFS-4732:
-------------------------------------

There are 2 components to this patch:

# I'm providing a new copy of hadoop-22-dfs-dir.tgz, attached to this issue.  
It's equivalent to the old one, but does not contain links.  As a side effect, 
the file is bigger, because bytes are duplicated where previously they were 
shared via hard links.  Before: ~170K compressed, ~40 MB uncompressed.  After: 
~310K compressed, ~80 MB uncompressed.  The compressed version is what's stored 
in the repo, so this doesn't really make the source tree much bigger.
# While investigating, I noticed a code path in {{TestDFSUpgradeFromImage}} 
where we could fail to shutdown a {{MiniDFSCluster}}.  In practice, this isn't 
an issue, but I'd like to clean it up.

To the committer: please download and commit hadoop-22-dfs-dir.tgz independent 
of the patch file.  It's a binary file, so I couldn't include it in the patch 
file.  It needs to go in hadoop-hdfs-project/hadoop-hdfs/src/test/resources and 
overwrite the existing file.

I tested this successfully on Mac (bsdtar), Ubuntu (GNU tar), and Windows 
(commons-compress).

                
> TestDFSUpgradeFromImage fails on Windows due to failure to unpack old image 
> tarball that contains hard links
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-4732
>                 URL: https://issues.apache.org/jira/browse/HDFS-4732
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 3.0.0
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>         Attachments: hadoop-22-dfs-dir.tgz
>
>
> On non-Windows, {{FileUtil#unTar}} is implemented using external Unix shell 
> commands.  On Windows, {{FileUtil#unTar}} is implemented in Java using 
> commons-compress.  {{TestDFSUpgradeFromImage}} uses a testing tarball image 
> of an old HDFS layout version, hadoop-22-dfs-dir.tgz.  This file contains 
> hard links.  It appears that commons-compress cannot handle the hard links 
> correctly.  When it unpacks the file, each hard link ends up as a 0-length 
> file.  This causes the test to fail during cluster startup, because the 
> 0-length block files are considered corrupt.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to