[ https://issues.apache.org/jira/browse/HDFS-5939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13907373#comment-13907373 ]
Haohui Mai commented on HDFS-5939: ---------------------------------- bq. But thinking about it a bit more, why can't we also let it also deal with RuntimeException? I will give it a try later today too. Do you agree? No. This is a fundamental contract of the RPC layer which defines what kinds of exceptions can be transferred over the wire. At least I don't think it is a good idea to address it in this jira. bq. In production, it's an error that user need to deal with I think. Agree. The client explicitly says this is an error, which the user needs to deal with anyway. What I'm yet to be convinced is that why you're logging it into the server log. As a rule of thumb, you only log operations in the server side if it provides valuable information for debugging or auditing. Otherwise it does no good but confuses the operator. (e.g., HADOOP-10274) bq. Of course, I can try to see if there is "no datanode" string in the exception's message. But what about if there is other IOException thrown and it also has the "no datanode" message. The exception is actually a public interface from the client's prospective. We need to be very conservative on it. We can kind of get away from it by throwing an {{IOException}} with specific message. If the code throws a new type of exception we need to reason through whether it'll introduce backward compatibility issues in the future. > WebHdfs returns misleading error code and logs nothing if trying to create a > file with no DNs in cluster > -------------------------------------------------------------------------------------------------------- > > Key: HDFS-5939 > URL: https://issues.apache.org/jira/browse/HDFS-5939 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs-client > Affects Versions: 2.3.0 > Reporter: Yongjun Zhang > Assignee: Yongjun Zhang > Attachments: HDFS-5939.001.patch, HDFS-5939.002.patch > > > When trying to access hdfs via webhdfs, and when datanode is dead, user will > see an exception below without any clue that it's caused by dead datanode: > $ curl -i -X PUT > ".../webhdfs/v1/t1?op=CREATE&user.name=<userName>&overwrite=false" > ... > {"RemoteException":{"exception":"IllegalArgumentException","javaClassName":"java.lang.IllegalArgumentException","message":"n > must be positive"}} > Need to fix the report to give user hint about dead datanode. -- This message was sent by Atlassian JIRA (v6.1.5#6160)