Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-6245

datanode fails to start with a bad disk even when failed volumes is set

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.0
    • Fix Version/s: 2.4.1
    • Component/s: None
    • Labels:
      None
    • Target Version/s:
    • Hadoop Flags:
      Reviewed

      Description

      Data node startup failed even when failed volumes was set. Had to remove the bad disk from the config to get it to boot.

        Activity

        Hide
        Hudson added a comment -

        SUCCESS: Integrated in Hadoop-Mapreduce-trunk #1764 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1764/)
        HDFS-6245. Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842)

        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Show
        Hudson added a comment - SUCCESS: Integrated in Hadoop-Mapreduce-trunk #1764 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1764/ ) HDFS-6245 . Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842 ) /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Hide
        Hudson added a comment -

        SUCCESS: Integrated in Hadoop-Hdfs-trunk #1739 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1739/)
        HDFS-6245. Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842)

        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Show
        Hudson added a comment - SUCCESS: Integrated in Hadoop-Hdfs-trunk #1739 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1739/ ) HDFS-6245 . Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842 ) /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Hide
        Hudson added a comment -

        FAILURE: Integrated in Hadoop-Yarn-trunk #547 (See https://builds.apache.org/job/Hadoop-Yarn-trunk/547/)
        HDFS-6245. Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842)

        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Show
        Hudson added a comment - FAILURE: Integrated in Hadoop-Yarn-trunk #547 (See https://builds.apache.org/job/Hadoop-Yarn-trunk/547/ ) HDFS-6245 . Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842 ) /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Hide
        Hudson added a comment -

        SUCCESS: Integrated in Hadoop-trunk-Commit #5542 (See https://builds.apache.org/job/Hadoop-trunk-Commit/5542/)
        HDFS-6245. Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842)

        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
        • /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Show
        Hudson added a comment - SUCCESS: Integrated in Hadoop-trunk-Commit #5542 (See https://builds.apache.org/job/Hadoop-trunk-Commit/5542/ ) HDFS-6245 . Datanode fails to start with a bad disk even when failed volumes is set. (Arpit Agarwal) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1588842 ) /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java
        Hide
        Arpit Agarwal added a comment -

        Thanks for the review Chris.

        I committed this to trunk, branch-2 and branch-2.4.

        Show
        Arpit Agarwal added a comment - Thanks for the review Chris. I committed this to trunk, branch-2 and branch-2.4.
        Hide
        Arpit Agarwal added a comment -

        It is hard to simulate this IOError from getCanonicalPath using unit tests. The other option is mock based tests but that would be convoluted and probably require some refactoring.

        Show
        Arpit Agarwal added a comment - It is hard to simulate this IOError from getCanonicalPath using unit tests. The other option is mock based tests but that would be convoluted and probably require some refactoring.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12640908/HDFS-6245.01.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. The patch doesn't appear to include any new or modified tests.
        Please justify why no new tests are needed for this patch.
        Also please list what manual steps were performed to verify this patch.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. There were no new javadoc warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 core tests. The patch passed unit tests in hadoop-hdfs-project/hadoop-hdfs.

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-HDFS-Build/6684//testReport/
        Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/6684//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12640908/HDFS-6245.01.patch against trunk revision . +1 @author . The patch does not contain any @author tags. -1 tests included . The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 javadoc . There were no new javadoc warning messages. +1 eclipse:eclipse . The patch built with eclipse:eclipse. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. +1 core tests . The patch passed unit tests in hadoop-hdfs-project/hadoop-hdfs. +1 contrib tests . The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HDFS-Build/6684//testReport/ Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/6684//console This message is automatically generated.
        Hide
        Chris Nauroth added a comment -

        +1 for the patch, pending Jenkins. Thanks, Arpit!

        Show
        Chris Nauroth added a comment - +1 for the patch, pending Jenkins. Thanks, Arpit!
        Hide
        Arpit Agarwal added a comment -

        This is effectively a regression since 2.3. File.getCanonicalPath can throw IOException which should be ignored by getStorageLocations. URISyntaxException is already consumed by the callee.

        Show
        Arpit Agarwal added a comment - This is effectively a regression since 2.3. File.getCanonicalPath can throw IOException which should be ignored by getStorageLocations . URISyntaxException is already consumed by the callee.
        Hide
        Arpit Gupta added a comment -

        Here is the stack trace

        2014-04-14 22:17:23,688 INFO  datanode.DataNode (SignalLogger.java:register(91)) - registered UNIX signal handlers for [TERM, HUP, INT]
        2014-04-14 22:17:23,750 WARN  common.Util (Util.java:stringAsURI(56)) - Path /grid/0/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
        2014-04-14 22:17:23,751 WARN  common.Util (Util.java:stringAsURI(56)) - Path /grid/1/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
        2014-04-14 22:17:23,751 WARN  common.Util (Util.java:stringAsURI(56)) - Path /grid/2/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
        2014-04-14 22:17:23,751 WARN  common.Util (Util.java:stringAsURI(56)) - Path /grid/3/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
        2014-04-14 22:17:23,751 WARN  common.Util (Util.java:stringAsURI(56)) - Path /grid/4/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
        2014-04-14 22:17:23,752 WARN  common.Util (Util.java:stringAsURI(56)) - Path /grid/5/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration.
        2014-04-14 22:17:23,769 FATAL datanode.DataNode (DataNode.java:secureMain(1995)) - Exception in secureMain
        java.lang.IllegalArgumentException: Failed to parse conf property dfs.datanode.data.dir: /grid/5/hdp/hdfs/data
                at org.apache.hadoop.hdfs.server.datanode.DataNode.getStorageLocations(DataNode.java:1786)
                at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1768)
                at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1812)
                at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1988)
                at org.apache.hadoop.hdfs.server.datanode.SecureDataNodeStarter.start(SecureDataNodeStarter.java:78)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at java.lang.reflect.Method.invoke(Method.java:597)
                at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243)
        Caused by: java.io.IOException: Input/output error
                at java.io.UnixFileSystem.canonicalize0(Native Method)
                at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:157)
                at java.io.File.getCanonicalPath(File.java:559)
                at java.io.File.getCanonicalFile(File.java:583)
                at org.apache.hadoop.hdfs.server.common.Util.fileAsURI(Util.java:73)
                at org.apache.hadoop.hdfs.server.common.Util.stringAsURI(Util.java:58)
                at org.apache.hadoop.hdfs.server.datanode.StorageLocation.parse(StorageLocation.java:94)
                at org.apache.hadoop.hdfs.server.datanode.DataNode.getStorageLocations(DataNode.java:1784)
                ... 9 more
        2014-04-14 22:17:23,772 INFO  util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 1
        2014-04-14 22:17:23,774 INFO  datanode.DataNode (StringUtils.java:run(640)) - SHUTDOWN_MSG:
        
        Show
        Arpit Gupta added a comment - Here is the stack trace 2014-04-14 22:17:23,688 INFO datanode.DataNode (SignalLogger.java:register(91)) - registered UNIX signal handlers for [TERM, HUP, INT] 2014-04-14 22:17:23,750 WARN common.Util (Util.java:stringAsURI(56)) - Path /grid/0/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration. 2014-04-14 22:17:23,751 WARN common.Util (Util.java:stringAsURI(56)) - Path /grid/1/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration. 2014-04-14 22:17:23,751 WARN common.Util (Util.java:stringAsURI(56)) - Path /grid/2/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration. 2014-04-14 22:17:23,751 WARN common.Util (Util.java:stringAsURI(56)) - Path /grid/3/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration. 2014-04-14 22:17:23,751 WARN common.Util (Util.java:stringAsURI(56)) - Path /grid/4/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration. 2014-04-14 22:17:23,752 WARN common.Util (Util.java:stringAsURI(56)) - Path /grid/5/hdp/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration. 2014-04-14 22:17:23,769 FATAL datanode.DataNode (DataNode.java:secureMain(1995)) - Exception in secureMain java.lang.IllegalArgumentException: Failed to parse conf property dfs.datanode.data.dir: /grid/5/hdp/hdfs/data at org.apache.hadoop.hdfs.server.datanode.DataNode.getStorageLocations(DataNode.java:1786) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1768) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1812) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1988) at org.apache.hadoop.hdfs.server.datanode.SecureDataNodeStarter.start(SecureDataNodeStarter.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243) Caused by: java.io.IOException: Input/output error at java.io.UnixFileSystem.canonicalize0(Native Method) at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:157) at java.io.File.getCanonicalPath(File.java:559) at java.io.File.getCanonicalFile(File.java:583) at org.apache.hadoop.hdfs.server.common.Util.fileAsURI(Util.java:73) at org.apache.hadoop.hdfs.server.common.Util.stringAsURI(Util.java:58) at org.apache.hadoop.hdfs.server.datanode.StorageLocation.parse(StorageLocation.java:94) at org.apache.hadoop.hdfs.server.datanode.DataNode.getStorageLocations(DataNode.java:1784) ... 9 more 2014-04-14 22:17:23,772 INFO util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 1 2014-04-14 22:17:23,774 INFO datanode.DataNode (StringUtils.java:run(640)) - SHUTDOWN_MSG:

          People

          • Assignee:
            Arpit Agarwal
            Reporter:
            Arpit Gupta
          • Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development