diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/LogAggregationStatus.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/LogAggregationStatus.java
index da1230c..5bc78fa 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/LogAggregationStatus.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/LogAggregationStatus.java
@@ -34,6 +34,8 @@
/** Log Aggregation is Running. */
RUNNING,
+ /** Log Aggregation is Running, but has failures in previous cycles */
+ RUNNING_WITH_FAILURE,
/**
* Log Aggregation is Succeeded. All of the logs have been aggregated
* successfully.
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto
index c45081a..4095676 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_protos.proto
@@ -204,6 +204,7 @@ enum LogAggregationStatusProto {
LOG_SUCCEEDED = 4;
LOG_FAILED = 5;
LOG_TIME_OUT = 6;
+ LOG_RUNNING_WITH_FAILURE = 7;
}
message ApplicationAttemptReportProto {
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/LogAggregationReport.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/LogAggregationReport.java
index b2270d8..d76f4cd 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/LogAggregationReport.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/LogAggregationReport.java
@@ -22,7 +22,6 @@
import org.apache.hadoop.classification.InterfaceStability.Unstable;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.LogAggregationStatus;
-import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.util.Records;
/**
@@ -32,7 +31,6 @@
* It includes details such as:
*
* - {@link ApplicationId} of the application.
- * - {@link NodeId} of the NodeManager.
* - {@link LogAggregationStatus}
* - Diagnostic information
*
@@ -45,7 +43,7 @@
@Public
@Unstable
public static LogAggregationReport newInstance(ApplicationId appId,
- NodeId nodeId, LogAggregationStatus status, String diagnosticMessage) {
+ LogAggregationStatus status, String diagnosticMessage) {
LogAggregationReport report = Records.newRecord(LogAggregationReport.class);
report.setApplicationId(appId);
report.setLogAggregationStatus(status);
@@ -66,18 +64,6 @@ public static LogAggregationReport newInstance(ApplicationId appId,
public abstract void setApplicationId(ApplicationId appId);
/**
- * Get the NodeId.
- * @return NodeId
- */
- @Public
- @Unstable
- public abstract NodeId getNodeId();
-
- @Public
- @Unstable
- public abstract void setNodeId(NodeId nodeId);
-
- /**
* Get the LogAggregationStatus.
* @return LogAggregationStatus
*/
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatRequest.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatRequest.java
index 227363f..767e4b0 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatRequest.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/NodeHeartbeatRequest.java
@@ -18,10 +18,9 @@
package org.apache.hadoop.yarn.server.api.protocolrecords;
-import java.util.Map;
+import java.util.List;
import java.util.Set;
-import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.server.api.records.MasterKey;
import org.apache.hadoop.yarn.server.api.records.NodeStatus;
import org.apache.hadoop.yarn.util.Records;
@@ -54,9 +53,9 @@ public static NodeHeartbeatRequest newInstance(NodeStatus nodeStatus,
public abstract Set getNodeLabels();
public abstract void setNodeLabels(Set nodeLabels);
- public abstract Map
+ public abstract List
getLogAggregationReportsForApps();
public abstract void setLogAggregationReportsForApps(
- Map logAggregationReportsForApps);
+ List logAggregationReportsForApps);
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/LogAggregationReportPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/LogAggregationReportPBImpl.java
index 75b6eab..ac6ad2e 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/LogAggregationReportPBImpl.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/LogAggregationReportPBImpl.java
@@ -22,13 +22,10 @@
import org.apache.hadoop.classification.InterfaceStability.Unstable;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.api.records.LogAggregationStatus;
-import org.apache.hadoop.yarn.api.records.NodeId;
import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationIdPBImpl;
-import org.apache.hadoop.yarn.api.records.impl.pb.NodeIdPBImpl;
import org.apache.hadoop.yarn.api.records.impl.pb.ProtoUtils;
import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationIdProto;
import org.apache.hadoop.yarn.proto.YarnProtos.LogAggregationStatusProto;
-import org.apache.hadoop.yarn.proto.YarnProtos.NodeIdProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.LogAggregationReportProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.LogAggregationReportProtoOrBuilder;
import org.apache.hadoop.yarn.server.api.protocolrecords.LogAggregationReport;
@@ -45,7 +42,6 @@
boolean viaProto = false;
private ApplicationId applicationId;
- private NodeId nodeId;
public LogAggregationReportPBImpl() {
builder = LogAggregationReportProto.newBuilder();
@@ -89,12 +85,6 @@ private void mergeLocalToBuilder() {
builder.getApplicationId())) {
builder.setApplicationId(convertToProtoFormat(this.applicationId));
}
-
- if (this.nodeId != null
- && !((NodeIdPBImpl) this.nodeId).getProto().equals(
- builder.getNodeId())) {
- builder.setNodeId(convertToProtoFormat(this.nodeId));
- }
}
private void mergeLocalToProto() {
@@ -191,34 +181,4 @@ public void setDiagnosticMessage(String diagnosticMessage) {
}
builder.setDiagnostics(diagnosticMessage);
}
-
- @Override
- public NodeId getNodeId() {
- if (this.nodeId != null) {
- return this.nodeId;
- }
-
- LogAggregationReportProtoOrBuilder p = viaProto ? proto : builder;
- if (!p.hasNodeId()) {
- return null;
- }
- this.nodeId = convertFromProtoFormat(p.getNodeId());
- return this.nodeId;
- }
-
- @Override
- public void setNodeId(NodeId nodeId) {
- maybeInitBuilder();
- if (nodeId == null)
- builder.clearNodeId();
- this.nodeId = nodeId;
- }
-
- private NodeIdProto convertToProtoFormat(NodeId t) {
- return ((NodeIdPBImpl) t).getProto();
- }
-
- private NodeIdPBImpl convertFromProtoFormat(NodeIdProto nodeId) {
- return new NodeIdPBImpl(nodeId);
- }
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatRequestPBImpl.java
index 03db39c..81f173d 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatRequestPBImpl.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/protocolrecords/impl/pb/NodeHeartbeatRequestPBImpl.java
@@ -18,21 +18,16 @@
package org.apache.hadoop.yarn.server.api.protocolrecords.impl.pb;
-import java.util.HashMap;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
-import org.apache.hadoop.yarn.api.records.ApplicationId;
-import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationIdPBImpl;
-import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationIdProto;
import org.apache.hadoop.yarn.proto.YarnProtos.StringArrayProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonProtos.MasterKeyProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonProtos.NodeStatusProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.LogAggregationReportProto;
-import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.LogAggregationReportsForAppsProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.NodeHeartbeatRequestProto;
import org.apache.hadoop.yarn.proto.YarnServerCommonServiceProtos.NodeHeartbeatRequestProtoOrBuilder;
import org.apache.hadoop.yarn.server.api.protocolrecords.LogAggregationReport;
@@ -51,9 +46,8 @@
private MasterKey lastKnownContainerTokenMasterKey = null;
private MasterKey lastKnownNMTokenMasterKey = null;
private Set labels = null;
- private Map
- logAggregationReportsForApps = null;
-
+ private List logAggregationReportsForApps = null;
+
public NodeHeartbeatRequestPBImpl() {
builder = NodeHeartbeatRequestProto.newBuilder();
}
@@ -110,12 +104,35 @@ private void mergeLocalToBuilder() {
private void addLogAggregationStatusForAppsToProto() {
maybeInitBuilder();
builder.clearLogAggregationReportsForApps();
- for (Entry entry : logAggregationReportsForApps
- .entrySet()) {
- builder.addLogAggregationReportsForApps(LogAggregationReportsForAppsProto
- .newBuilder().setAppId(convertToProtoFormat(entry.getKey()))
- .setLogAggregationReport(convertToProtoFormat(entry.getValue())));
+ if (this.logAggregationReportsForApps == null) {
+ return;
}
+ Iterable it =
+ new Iterable() {
+ @Override
+ public Iterator iterator() {
+ return new Iterator() {
+ private Iterator iter =
+ logAggregationReportsForApps.iterator();
+
+ @Override
+ public boolean hasNext() {
+ return iter.hasNext();
+ }
+
+ @Override
+ public LogAggregationReportProto next() {
+ return convertToProtoFormat(iter.next());
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+ };
+ builder.addAllLogAggregationReportsForApps(it);
}
private LogAggregationReportProto convertToProtoFormat(
@@ -246,17 +263,8 @@ private void initNodeLabels() {
labels = new HashSet(nodeLabels.getElementsList());
}
- private ApplicationIdPBImpl convertFromProtoFormat(ApplicationIdProto p) {
- return new ApplicationIdPBImpl(p);
- }
-
- private ApplicationIdProto convertToProtoFormat(ApplicationId t) {
- return ((ApplicationIdPBImpl) t).getProto();
- }
-
@Override
- public Map
- getLogAggregationReportsForApps() {
+ public List getLogAggregationReportsForApps() {
if (this.logAggregationReportsForApps != null) {
return this.logAggregationReportsForApps;
}
@@ -266,15 +274,11 @@ private ApplicationIdProto convertToProtoFormat(ApplicationId t) {
private void initLogAggregationReportsForApps() {
NodeHeartbeatRequestProtoOrBuilder p = viaProto ? proto : builder;
- List list =
+ List list =
p.getLogAggregationReportsForAppsList();
- this.logAggregationReportsForApps =
- new HashMap();
- for (LogAggregationReportsForAppsProto c : list) {
- ApplicationId appId = convertFromProtoFormat(c.getAppId());
- LogAggregationReport report =
- convertFromProtoFormat(c.getLogAggregationReport());
- this.logAggregationReportsForApps.put(appId, report);
+ this.logAggregationReportsForApps = new ArrayList();
+ for (LogAggregationReportProto c : list) {
+ this.logAggregationReportsForApps.add(convertFromProtoFormat(c));
}
}
@@ -285,14 +289,10 @@ private LogAggregationReport convertFromProtoFormat(
@Override
public void setLogAggregationReportsForApps(
- Map logAggregationStatusForApps) {
- if (logAggregationStatusForApps == null
- || logAggregationStatusForApps.isEmpty()) {
- return;
+ List logAggregationStatusForApps) {
+ if(logAggregationStatusForApps == null) {
+ builder.clearLogAggregationReportsForApps();
}
- maybeInitBuilder();
- this.logAggregationReportsForApps =
- new HashMap();
- this.logAggregationReportsForApps.putAll(logAggregationStatusForApps);
+ this.logAggregationReportsForApps = logAggregationStatusForApps;
}
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/AppBlock.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/AppBlock.java
index dd5a4c8..6de90bd 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/AppBlock.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/AppBlock.java
@@ -41,6 +41,7 @@
import org.apache.hadoop.yarn.api.records.ContainerId;
import org.apache.hadoop.yarn.api.records.ContainerReport;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
+import org.apache.hadoop.yarn.api.records.LogAggregationStatus;
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException;
@@ -192,8 +193,17 @@ public ApplicationReport run() throws Exception {
: "ApplicationMaster");
if (webUiType != null
&& webUiType.equals(YarnWebParams.RM_WEB_UI)) {
- overviewTable._("Log Aggregation Status",
- root_url("logaggregationstatus", app.getAppId()), "Status");
+ LogAggregationStatus status = getLogAggregationStatus();
+ if (status == null) {
+ overviewTable._("Log Aggregation Status", "N/A");
+ } else if (status == LogAggregationStatus.DISABLED
+ || status == LogAggregationStatus.NOT_START
+ || status == LogAggregationStatus.SUCCEEDED) {
+ overviewTable._("Log Aggregation Status", status.name());
+ } else {
+ overviewTable._("Log Aggregation Status",
+ root_url("logaggregationstatus", app.getAppId()), status.name());
+ }
}
overviewTable._("Diagnostics:",
app.getDiagnosticsInfo() == null ? "" : app.getDiagnosticsInfo());
@@ -342,4 +352,9 @@ private String clairfyAppFinalStatus(FinalApplicationStatus status) {
protected void createApplicationMetricsTable(Block html) {
}
+
+ // This will be overrided in RMAppBlock
+ protected LogAggregationStatus getLogAggregationStatus() {
+ return null;
+ }
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/proto/yarn_server_common_service_protos.proto hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/proto/yarn_server_common_service_protos.proto
index d34c9f7..c027ac0 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/proto/yarn_server_common_service_protos.proto
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/proto/yarn_server_common_service_protos.proto
@@ -50,19 +50,13 @@ message NodeHeartbeatRequestProto {
optional MasterKeyProto last_known_container_token_master_key = 2;
optional MasterKeyProto last_known_nm_token_master_key = 3;
optional StringArrayProto nodeLabels = 4;
- repeated LogAggregationReportsForAppsProto log_aggregation_reports_for_apps = 5;
-}
-
-message LogAggregationReportsForAppsProto {
- optional ApplicationIdProto appId = 1;
- optional LogAggregationReportProto log_aggregation_report = 2;
+ repeated LogAggregationReportProto log_aggregation_reports_for_apps = 5;
}
message LogAggregationReportProto {
-optional ApplicationIdProto application_id = 1;
-optional NodeIdProto node_id = 2;
-optional LogAggregationStatusProto log_aggregation_status = 3;
-optional string diagnostics = 4 [default = "N/A"];
+ optional ApplicationIdProto application_id = 1;
+ optional LogAggregationStatusProto log_aggregation_status = 2;
+ optional string diagnostics = 3 [default = "N/A"];
}
message NodeHeartbeatResponseProto {
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java
index b1ab5f1..a693b7e 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java
@@ -75,7 +75,6 @@
import org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container;
import org.apache.hadoop.yarn.server.nodemanager.metrics.NodeManagerMetrics;
import org.apache.hadoop.yarn.server.nodemanager.nodelabels.NodeLabelsProvider;
-import org.apache.hadoop.yarn.util.Records;
import org.apache.hadoop.yarn.util.YarnVersionInfo;
import com.google.common.annotations.VisibleForTesting;
@@ -665,7 +664,7 @@ public void run() {
if (logAggregationEnabled) {
// pull log aggregation status for application running in this NM
- Map logAggregationReports =
+ List logAggregationReports =
getLogAggregationReportsForApps(context
.getLogAggregationStatusForApps());
if (logAggregationReports != null
@@ -809,47 +808,14 @@ private void updateMasterKeys(NodeHeartbeatResponse response) {
statusUpdater.start();
}
- private Map
- getLogAggregationReportsForApps(
- ConcurrentLinkedQueue lastestLogAggregationStatus) {
- Map latestLogAggregationReports =
- new HashMap();
+ private List getLogAggregationReportsForApps(
+ ConcurrentLinkedQueue lastestLogAggregationStatus) {
LogAggregationReport status;
while ((status = lastestLogAggregationStatus.poll()) != null) {
this.logAggregationReportForAppsTempList.add(status);
}
- for (LogAggregationReport logAggregationReport
- : this.logAggregationReportForAppsTempList) {
- LogAggregationReport report = null;
- if (latestLogAggregationReports.containsKey(logAggregationReport
- .getApplicationId())) {
- report =
- latestLogAggregationReports.get(logAggregationReport
- .getApplicationId());
- report.setLogAggregationStatus(logAggregationReport
- .getLogAggregationStatus());
- String message = report.getDiagnosticMessage();
- if (logAggregationReport.getDiagnosticMessage() != null
- && !logAggregationReport.getDiagnosticMessage().isEmpty()) {
- if (message != null) {
- message += logAggregationReport.getDiagnosticMessage();
- } else {
- message = logAggregationReport.getDiagnosticMessage();
- }
- report.setDiagnosticMessage(message);
- }
- } else {
- report = Records.newRecord(LogAggregationReport.class);
- report.setApplicationId(logAggregationReport.getApplicationId());
- report.setNodeId(this.nodeId);
- report.setLogAggregationStatus(logAggregationReport
- .getLogAggregationStatus());
- report
- .setDiagnosticMessage(logAggregationReport.getDiagnosticMessage());
- }
- latestLogAggregationReports.put(logAggregationReport.getApplicationId(),
- report);
- }
- return latestLogAggregationReports;
+ List reports = new ArrayList();
+ reports.addAll(logAggregationReportForAppsTempList);
+ return reports;
}
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java
index 3f09e5d..7d4537d 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java
@@ -306,6 +306,7 @@ private void uploadLogsForContainers(boolean appFinished) {
+ currentTime);
String diagnosticMessage = "";
+ boolean logAggregationSucceedInThisCycle = true;
final boolean rename = uploadedLogsInThisCycle;
try {
userUgi.doAs(new PrivilegedExceptionAction