MAPREDUCE-6797. Job history server scans can become blocked on a single, slow entry. Contributed by Prabhu Joseph

(cherry picked from commit 99c2bbd337)
This commit is contained in:
Jason Lowe 2016-11-14 20:20:50 +00:00
parent 4dc40fe28e
commit 5b1b825ac8
1 changed files with 25 additions and 27 deletions

View File

@ -227,16 +227,15 @@ public class HistoryFileManager extends AbstractService {
JobId firstMoveFailedKey = null; JobId firstMoveFailedKey = null;
int moveFailedCount = 0; int moveFailedCount = 0;
while(cache.size() > maxSize && keys.hasNext()) { while (cache.size() > maxSize && keys.hasNext()) {
JobId key = keys.next(); JobId key = keys.next();
HistoryFileInfo firstValue = cache.get(key); HistoryFileInfo firstValue = cache.get(key);
if(firstValue != null) { if (firstValue != null) {
synchronized(firstValue) {
if (firstValue.isMovePending()) { if (firstValue.isMovePending()) {
if(firstValue.didMoveFail() && if (firstValue.didMoveFail() &&
firstValue.jobIndexInfo.getFinishTime() <= cutoff) { firstValue.jobIndexInfo.getFinishTime() <= cutoff) {
cache.remove(key); cache.remove(key);
//Now lets try to delete it // Now lets try to delete it
try { try {
firstValue.delete(); firstValue.delete();
} catch (IOException e) { } catch (IOException e) {
@ -261,7 +260,6 @@ public class HistoryFileManager extends AbstractService {
} }
} }
} }
}
// Log output only for first jobhisotry in pendings to restrict // Log output only for first jobhisotry in pendings to restrict
// the total number of logs. // the total number of logs.
if (inIntermediateCount > 0) { if (inIntermediateCount > 0) {