YARN-6649. RollingLevelDBTimelineServer throws RuntimeException if object decoding ever fails runtime exception. Contributed by Jon Eagles.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/177c0c15 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/177c0c15 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/177c0c15 Branch: refs/heads/HDFS-7240 Commit: 177c0c1523ad8b1004070f16807ee225fa577523 Parents: 5a81e70 Author: Nathan Roberts <nrobe...@apache.org> Authored: Tue May 30 16:10:33 2017 -0500 Committer: Xiaoyu Yao <x...@apache.org> Committed: Thu Jun 8 10:44:49 2017 -0700 ---------------------------------------------------------------------- .../timeline/RollingLevelDBTimelineStore.java | 29 ++++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/177c0c15/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java index 20e0379..d139346 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java @@ -473,9 +473,16 @@ public class RollingLevelDBTimelineStore extends AbstractService implements } } else if (key[prefixlen] == OTHER_INFO_COLUMN[0]) { if (otherInfo) { - entity.addOtherInfo( - parseRemainingKey(key, prefixlen + OTHER_INFO_COLUMN.length), - fstConf.asObject(iterator.peekNext().getValue())); + Object o = null; + String keyStr = parseRemainingKey(key, + prefixlen + OTHER_INFO_COLUMN.length); + try { + o = fstConf.asObject(iterator.peekNext().getValue()); + entity.addOtherInfo(keyStr, o); + } catch (Exception e) { + LOG.warn("Error while decoding " + + entityId + ":otherInfo:" + keyStr, e); + } } } else if (key[prefixlen] == RELATED_ENTITIES_COLUMN[0]) { if (relatedEntities) { @@ -1338,7 +1345,12 @@ public class RollingLevelDBTimelineStore extends AbstractService implements TimelineEvent event = new TimelineEvent(); event.setTimestamp(ts); event.setEventType(tstype); - Object o = fstConf.asObject(value); + Object o = null; + try { + o = fstConf.asObject(value); + } catch (Exception e) { + LOG.warn("Error while decoding " + tstype, e); + } if (o == null) { event.setEventInfo(null); } else if (o instanceof Map) { @@ -1362,8 +1374,13 @@ public class RollingLevelDBTimelineStore extends AbstractService implements KeyParser kp = new KeyParser(key, offset); String name = kp.getNextString(); byte[] bytes = kp.getRemainingBytes(); - Object value = fstConf.asObject(bytes); - entity.addPrimaryFilter(name, value); + Object value = null; + try { + value = fstConf.asObject(bytes); + entity.addPrimaryFilter(name, value); + } catch (Exception e) { + LOG.warn("Error while decoding " + name, e); + } } /** --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org