HDFS-8932. NPE thrown in NameNode when try to get TotalSyncCount metric before editLogStream initialization. Contributed by Surendra Singh Lilhore

This commit is contained in:
Xiaoyu Yao 2015-08-24 16:56:24 -07:00
parent 66d0c81d8f
commit 3b00eaea25
3 changed files with 17 additions and 5 deletions

View File

@ -1211,6 +1211,9 @@ Release 2.8.0 - UNRELEASED
HDFS-8948. Use GenericTestUtils to set log levels in TestPread and
TestReplaceDatanodeOnFailure. (Mingliang Liu via wheat9)
HDFS-8932. NPE thrown in NameNode when try to get TotalSyncCount metric
before editLogStream initialization. (Surendra Singh Lilhore via xyao)
Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -1692,10 +1692,14 @@ public class FSEditLog implements LogsPurgeable {
}
/**
+ * Return total number of syncs happened on this edit log.
+ * @return long - count
+ */
* Return total number of syncs happened on this edit log.
* @return long - count
*/
public long getTotalSyncCount() {
return editLogStream.getNumSync();
if (editLogStream != null) {
return editLogStream.getNumSync();
} else {
return 0;
}
}
}

View File

@ -7295,7 +7295,12 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
@Metric({"TotalSyncTimes",
"Total time spend in sync operation on various edit logs"})
public String getTotalSyncTimes() {
return fsImage.editLog.getJournalSet().getSyncTimes();
JournalSet journalSet = fsImage.editLog.getJournalSet();
if (journalSet != null) {
return journalSet.getSyncTimes();
} else {
return "";
}
}
}