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

Chris Nauroth commented on HDFS-9569:
-------------------------------------

[~yzhangal], thank you for the update.  This looks better.  It still ends up 
logging the error and full stack trace twice: once within the {{loadFSImage}} 
loop, and once again when the exception gets rethrown, escapes to top level, 
and exits the process.  Sorry to nit-pick, but I think eliminating the 
redundant logging will better help operators identify what they need to do 
next.  I suggest catching and rethrowing {{IllegalReservedPathException}} 
without logging from within the loop:

{code}
        ...
      } catch (IllegalReservedPathException e) {
        throw e;
      } catch (Exception e) {
        LOG.error("Failed to load image from " + imageFile, e);
        ...
{code}

Also, the test can be simplified to catch {{IllegalReservedPathException}} 
directly:

{code}
      ...
    } catch (IllegalReservedPathException e) {
      GenericTestUtils.assertExceptionContains(
          "reserved path component in this version",
          e);
    } finally {
      ...
{code}

I'll be +1 after those changes and another Jenkins run.  I'll also give 
[~kihwal] a chance to comment again before I commit anything, since he did the 
earlier review.

> Log the name of the fsimage being loaded for better supportability
> ------------------------------------------------------------------
>
>                 Key: HDFS-9569
>                 URL: https://issues.apache.org/jira/browse/HDFS-9569
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>            Reporter: Yongjun Zhang
>            Assignee: Yongjun Zhang
>            Priority: Trivial
>              Labels: supportability
>             Fix For: 2.7.3
>
>         Attachments: HDFS-9569.001.patch, HDFS-9569.002.patch, 
> HDFS-9569.003.patch
>
>
> When NN starts to load fsimage, it does
> {code}
>  void loadFSImageFile(FSNamesystem target, MetaRecoveryContext recovery,
>       FSImageFile imageFile, StartupOption startupOption) throws IOException {
>       LOG.debug("Planning to load image :\n" + imageFile);
>       ......
>     long txId = loader.getLoadedImageTxId();
>     LOG.info("Loaded image for txid " + txId + " from " + curFile);
> {code}
> A debug msg is issued at the beginning with the fsimage file name, then at 
> the end an info msg is issued after loading.
> If the fsimage loading failed due to corrupted fsimage (see HDFS-9406), we 
> don't see the first msg. It'd be helpful to always be able to see from NN 
> logs what fsimage file it's loading.
> Two improvements:
> 1. Change the above debug to info
> 2. If exception happens when loading fsimage, be sure to report the fsimage 
> name being loaded in the error message.



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

Reply via email to