[
https://issues.apache.org/jira/browse/HDFS-8179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14503697#comment-14503697
]
Jitendra Nath Pandey commented on HDFS-8179:
--------------------------------------------
[~arpitagarwal],
HDFS-6841 changed Times.now call to Times.monotonicNow, which revealed the
original bug in DFSClient#getServerDefaults. The bug here was that
"serverDefaults == null' was not handled, when called for the first time.
{code}
- if (now - serverDefaultsLastUpdate > SERVER_DEFAULTS_VALIDITY_PERIOD) {
+ if ((serverDefaults == null) ||
+ (now - serverDefaultsLastUpdate > SERVER_DEFAULTS_VALIDITY_PERIOD)) {
{code}
Before HDFS-6841 "now" was Times.now() therefore, the "if condition" always
returned true when called for the first time.
> DFSClient#getServerDefaults returns null within 1 hour of system start
> ----------------------------------------------------------------------
>
> Key: HDFS-8179
> URL: https://issues.apache.org/jira/browse/HDFS-8179
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 2.7.0
> Reporter: Xiaoyu Yao
> Assignee: Xiaoyu Yao
> Priority: Blocker
> Attachments: HDFS-8179.00.patch, HDFS-8179.01.patch
>
>
> We recently hit NPE during Ambari Oozie service check. The failed hdfs
> command is below. It repros sometimes and then go away after the cluster runs
> for a while.
> {code}
> [ambari-qa@c6401 ~]$ hadoop --config /etc/hadoop/conf fs -rm -r
> /user/ambari-qa/mapredsmokeoutput
> rm: Failed to get server trash configuration: null. Consider using -skipTrash
> option
> {code}
> With additional tracing, the failure was located to the following stack.
> {code}
> 15/04/17 20:57:12 DEBUG fs.Trash: Failed to get server trash configuration
> java.lang.NullPointerException
> at org.apache.hadoop.fs.Trash.moveToAppropriateTrash(Trash.java:86)
> at org.apache.hadoop.fs.shell.Delete$Rm.moveToTrash(Delete.java:117)
> at org.apache.hadoop.fs.shell.Delete$Rm.processPath(Delete.java:104)
> at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:321)
> at
> org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:293)
> at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:275)
> at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:259)
> at
> org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:205)
> at org.apache.hadoop.fs.shell.Command.run(Command.java:166)
> at org.apache.hadoop.fs.FsShell.run(FsShell.java:287)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
> at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
> rm: Failed to get server trash configuration: null. Consider using -skipTrash
> option
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)