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

songwanging commented on HDFS-8840:
-----------------------------------

I Quickly check all hadoop source files using my automatic bug detection tool, 
this is the only case in Hadoop that LOG.isDebugEnabled() used with 
LOG.fatal(msg, e). In addition, my tool find this is the only case in more than 
10 apache open source projects, which strong suggest that this piece of code is 
so awkward, we need to improve it.  

> Inconsistent log level practice
> -------------------------------
>
>                 Key: HDFS-8840
>                 URL: https://issues.apache.org/jira/browse/HDFS-8840
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>    Affects Versions: 2.6.0, 2.5.1, 2.5.2, 2.7.1
>            Reporter: songwanging
>            Assignee: Jagadesh Kiran N
>            Priority: Minor
>         Attachments: HDFS-8840-00.patch
>
>
> In method "checkLogsAvailableForRead()" of class: 
> hadoop-2.7.1-src\hadoop-hdfs-project\hadoop-hdfs\src\main\java\org\apache\hadoop\hdfs\server\namenode\ha\BootstrapStandby.java
> The log level is not correct, after checking "LOG.isDebugEnabled()", we 
> should use "LOG.debug(msg, e);", while now we use " LOG.fatal(msg, e);". Log 
> level is inconsistent.
> the source code of this method is:
> private boolean checkLogsAvailableForRead(FSImage image, long imageTxId, long 
> curTxIdOnOtherNode) {
>   ...
>     } catch (IOException e) {
>    ...
>       if (LOG.isDebugEnabled()) {
>         LOG.fatal(msg, e);
>       } else {
>         LOG.fatal(msg);
>       }
>       return false;
>     }
>   }



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

Reply via email to