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

Zuoming Zhang commented on HDFS-13673:
--------------------------------------

Interesting, for the error in TestNameNodeMetrics.testCorruptBlock, it doesn't 
seem to be related to my change, since the test has first passed in my previous 
patch, and the new patch is no difference in logic. I think the 
TestNameNodeMetrics.testCorruptBlock itself has random failure since it 
sometimes fails on my local machine.

> TestNameNodeMetrics fails on Windows
> ------------------------------------
>
>                 Key: HDFS-13673
>                 URL: https://issues.apache.org/jira/browse/HDFS-13673
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 3.1.0, 2.9.1
>            Reporter: Zuoming Zhang
>            Assignee: Zuoming Zhang
>            Priority: Minor
>              Labels: Windows
>             Fix For: 3.1.0, 2.9.1
>
>         Attachments: HDFS-13673.000.patch, HDFS-13673.001.patch, 
> TestNameNodeMetrics-testVolumeFailures-Report.000.txt, 
> TestNameNodeMetrics-testVolumeFailures-Report.001.txt
>
>
> _TestNameNodeMetrics_ fails on Windows
>  
> Problem:
> This is because in _testVolumeFailures_, it tries to call 
> _DataNodeTestUtils.injectDataDirFailure_ on a volume folder. What 
> _injectDataDirFailure_does is actually modifying the folder name from 
> _volume_name_ to _volume_name_._origin_ and create a new file named as 
> _volume_name_. Inside the folder, it has two things: 1. a directory named as 
> "_current_", 2. a file named as "_in_use.lock_". Windows behaves different 
> from Linux when renaming the parent folder of a locked file. Windows prevent 
> you from renaming while Linux allows.
> Fix:
> So in order to inject data failure on to the volume. Instead of renaming the 
> volume folder itself. Rename the folder inside it which doesn't hold a lock. 
> Since the folder inside the volume is "_current_". Then we only need to 
> inject data failure to _volume_name/current_.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to