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

Colin Patrick McCabe commented on HDFS-7610:
--------------------------------------------

{code}
+      try {
+        volumeSet.add(sl.getFile().getCanonicalFile());
+      } catch (IOException e) {
+        // Thrown because File#getCanoicalFile(). Ignored.
+      }
{code}

We can't ignore exceptions like this.  Anyway, I don't think we need the 
"canonical" filename anyway.  If someone is playing games with symlinks, that's 
their own problem, not ours.  Just get the absolute pathname, an operation that 
can't fail.

{code}
-    Set<String> expectedVolumes = new HashSet<String>();
+    Set<String> expectedVolumes = new HashSet<>();
{code}

Changes like this are just churn that makes it harder to read the diff, so 
let's not

thanks

> Should use StorageDirectory.getCurrentDIr() to construct FsVolumeImpl
> ---------------------------------------------------------------------
>
>                 Key: HDFS-7610
>                 URL: https://issues.apache.org/jira/browse/HDFS-7610
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 2.6.0
>            Reporter: Lei (Eddy) Xu
>            Assignee: Lei (Eddy) Xu
>         Attachments: HDFS-7610.000.patch
>
>
> In the hot swap feature, {{FsDatasetImpl#addVolume}} uses the base volume dir 
> (e.g. "{{/foo/data0}}", instead of volume's current dir 
> "{{/foo/data/current}}" to construct {{FsVolumeImpl}}. As a result, DataNode 
> can not remove this newly added volume, because its 
> {{FsVolumeImpl#getBasePath}} returns "{{/foo}}".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to