Ted Yu created HDFS-13511:
-----------------------------

             Summary: Provide specialized exception when block length cannot be 
obtained
                 Key: HDFS-13511
                 URL: https://issues.apache.org/jira/browse/HDFS-13511
             Project: Hadoop HDFS
          Issue Type: Improvement
            Reporter: Ted Yu


In downstream project, I saw the following code:
{code}
        FSDataInputStream inputStream = hdfs.open(new Path(path));
...
        if (options.getRecoverFailedOpen() && dfs != null && 
e.getMessage().toLowerCase()
            .startsWith("cannot obtain block length for")) {
{code}
The above tightly depends on the following in DFSInputStream#readBlockLength
{code}
    throw new IOException("Cannot obtain block length for " + locatedblock);
{code}
The check based on string matching is brittle in production deployment.

After discussing with [~ste...@apache.org], better approach is to introduce 
specialized IOException, e.g. CannotObtainBlockLengthException so that 
downstream project doesn't have to rely on string matching.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to