[ 
https://issues.apache.org/jira/browse/HDFS-7599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14273804#comment-14273804
 ] 

Yongjun Zhang commented on HDFS-7599:
-------------------------------------

Hi [~ste...@apache.org],

Thanks a lot for your good suggestions and question. This exception is thrown 
from DFSOutputStream, where the file name is available. The more complete 
logging is:
{code}
          if (nodes.length <= 1) {
            lastException.set(new IOException("All datanodes " + pipelineMsg
                + " are bad. Aborting..."));
            streamerClosed = true;
            return false;
          }
          DFSClient.LOG.warn("Error Recovery for block " + block +
              " in pipeline " + pipelineMsg + 
              ": bad datanode " + nodes[errorIndex]);
{code}

When the log level of the application is only "ERROR", the WARN above is not 
shown. Even if the WARN is shown, it doesn't show the file name too. I think it 
will help to add the file name there too.

I will look into having a new exception and wiki article as you suggested.


> Add more information to exception msg when pipeline recovery fails
> ------------------------------------------------------------------
>
>                 Key: HDFS-7599
>                 URL: https://issues.apache.org/jira/browse/HDFS-7599
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: dfsclient
>    Affects Versions: 2.6.0
>            Reporter: Yongjun Zhang
>            Assignee: Yongjun Zhang
>              Labels: supportability
>
> When pipeline recovery fails with the following exception, can not easily 
> identify the associated file and block, propose to add the info for better 
> debuggability:
> {code}
> java.io.IOException: All datanodes <...> are bad. Aborting...
>         at 
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:1127)
>         at 
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatanodeError(DFSOutputStream.java:924)
>         at 
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:486)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to