You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2018/04/27 15:39:00 UTC
[jira] [Created] (HDFS-13511) Provide specialized exception when
block length cannot be obtained
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 [~stevel@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-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org