[ 
https://issues.apache.org/jira/browse/HDFS-13913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Templeton updated HDFS-13913:
------------------------------------
    Status: Patch Available  (was: Open)

> LazyPersistFileScrubber.run() error handling is poor
> ----------------------------------------------------
>
>                 Key: HDFS-13913
>                 URL: https://issues.apache.org/jira/browse/HDFS-13913
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>    Affects Versions: 3.1.0
>            Reporter: Daniel Templeton
>            Assignee: Daniel Green
>            Priority: Minor
>         Attachments: HDFS-13913.001.patch
>
>
> In {{LazyPersistFileScrubber.run()}} we have:
> {code}
>         try {
>           clearCorruptLazyPersistFiles();
>         } catch (Exception e) {
>           FSNamesystem.LOG.error(
>               "Ignoring exception in LazyPersistFileScrubber:", e);
>         }
> {code}
> First problem is that catching {{Exception}} is sloppy.  It should instead be 
> a multicatch for the actual exceptions thrown or better a set of separate 
> catch statements that react appropriately to the type of exception.
> Second problem is that it's bad to log an ERROR that's not actionable and 
> that can be safely ignored.  The log message should be logged at WARN or INFO 
> level.
> Third, the log message is useless.  If it's going to be a WARN or ERROR, a 
> log message should be actionable.  Otherwise it's an info.  A log message 
> should contain enough information for an admin to understand what it means.
> In the end, I think the right thing here is to leave the high-level behavior 
> unchanged: log a message and ignore the error, hoping that the next run will 
> go better.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to