MAPREDUCE-6797. Job history server scans can become blocked on a single, slow entry. Contributed by Prabhu Joseph
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/99c2bbd3 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/99c2bbd3 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/99c2bbd3 Branch: refs/heads/YARN-3926 Commit: 99c2bbd337942e4bc7b246a88dff53f98e530651 Parents: ff0b99e Author: Jason Lowe <jl...@apache.org> Authored: Mon Nov 14 20:20:50 2016 +0000 Committer: Jason Lowe <jl...@apache.org> Committed: Mon Nov 14 20:20:50 2016 +0000 ---------------------------------------------------------------------- .../mapreduce/v2/hs/HistoryFileManager.java | 48 ++++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/99c2bbd3/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java index 0f09df2..bd8d9c2 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java @@ -231,38 +231,36 @@ public class HistoryFileManager extends AbstractService { JobId firstMoveFailedKey = null; int moveFailedCount = 0; - while(cache.size() > maxSize && keys.hasNext()) { + while (cache.size() > maxSize && keys.hasNext()) { JobId key = keys.next(); HistoryFileInfo firstValue = cache.get(key); - if(firstValue != null) { - synchronized(firstValue) { - if (firstValue.isMovePending()) { - if(firstValue.didMoveFail() && - firstValue.jobIndexInfo.getFinishTime() <= cutoff) { - cache.remove(key); - //Now lets try to delete it - try { - firstValue.delete(); - } catch (IOException e) { - LOG.error("Error while trying to delete history files" + - " that could not be moved to done.", e); + if (firstValue != null) { + if (firstValue.isMovePending()) { + if (firstValue.didMoveFail() && + firstValue.jobIndexInfo.getFinishTime() <= cutoff) { + cache.remove(key); + // Now lets try to delete it + try { + firstValue.delete(); + } catch (IOException e) { + LOG.error("Error while trying to delete history files" + + " that could not be moved to done.", e); + } + } else { + if (firstValue.didMoveFail()) { + if (moveFailedCount == 0) { + firstMoveFailedKey = key; } + moveFailedCount += 1; } else { - if (firstValue.didMoveFail()) { - if (moveFailedCount == 0) { - firstMoveFailedKey = key; - } - moveFailedCount += 1; - } else { - if (inIntermediateCount == 0) { - firstInIntermediateKey = key; - } - inIntermediateCount += 1; + if (inIntermediateCount == 0) { + firstInIntermediateKey = key; } + inIntermediateCount += 1; } - } else { - cache.remove(key); } + } else { + cache.remove(key); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org