You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Andrew Wang (JIRA)" <ji...@apache.org> on 2013/11/05 00:34:17 UTC
[jira] [Created] (HDFS-5458) Datanode failed volume threshold
ignored if exception is thrown in getDataDirsFromURIs
Andrew Wang created HDFS-5458:
---------------------------------
Summary: Datanode failed volume threshold ignored if exception is thrown in getDataDirsFromURIs
Key: HDFS-5458
URL: https://issues.apache.org/jira/browse/HDFS-5458
Project: Hadoop HDFS
Issue Type: Bug
Components: datanode
Affects Versions: 3.0.0
Reporter: Andrew Wang
Assignee: Andrew Wang
Saw a stacktrace of datanode startup with a bad volume, where even listing directories would throw an IOException. The failed volume threshold was set to 1, but it would fatally error out in {{File#getCanonicalPath}} in {{getDataDirsFromURIs}}:
{code}
File dir = new File(dirURI.getPath());
try {
dataNodeDiskChecker.checkDir(localFS, new Path(dir.toURI()));
dirs.add(dir);
} catch (IOException ioe) {
LOG.warn("Invalid " + DFS_DATANODE_DATA_DIR_KEY + " "
+ dir + " : ", ioe);
invalidDirs.append("\"").append(dir.getCanonicalPath()).append("\" ");
}
{code}
Since {{getCanonicalPath}} can need to do I/O and thus throw an IOException, this catch clause doesn't properly protect startup from a failed volume.
--
This message was sent by Atlassian JIRA
(v6.1#6144)