[
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)