Repository: hadoop Updated Branches: refs/heads/branch-2 5b0baeab5 -> c112bf683
YARN-6649. RollingLevelDBTimelineServer throws RuntimeException if object decoding ever fails runtime exception. Contributed by Jon Eagles. (cherry picked from commit 4369690ce63566131aee28696bf2683a3cb20205) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c112bf68 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c112bf68 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c112bf68 Branch: refs/heads/branch-2 Commit: c112bf68382edd1a2d423852ca1a99af1666116d Parents: 5b0baea Author: Nathan Roberts <[email protected]> Authored: Tue May 30 16:10:33 2017 -0500 Committer: Nathan Roberts <[email protected]> Committed: Wed May 31 12:35:50 2017 -0500 ---------------------------------------------------------------------- .../timeline/RollingLevelDBTimelineStore.java | 29 ++++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c112bf68/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: [email protected] For additional commands, e-mail: [email protected]
