You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by zh...@apache.org on 2015/02/16 19:31:51 UTC
[44/50] [abbrv] hadoop git commit: YARN-2749. Fix some testcases from
TestLogAggregationService fails in trunk. (Contributed by Xuan Gong)
YARN-2749. Fix some testcases from TestLogAggregationService fails in trunk. (Contributed by Xuan Gong)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7f09f8d2
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7f09f8d2
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7f09f8d2
Branch: refs/heads/HDFS-7285
Commit: 7f09f8d228027f9f41cfa5cf4812c1e2789fa027
Parents: bb736e9
Author: Junping Du <ju...@apache.org>
Authored: Sun Feb 15 06:46:32 2015 -0800
Committer: Zhe Zhang <zh...@apache.org>
Committed: Mon Feb 16 10:29:51 2015 -0800
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 +++
.../logaggregation/AppLogAggregatorImpl.java | 15 +++++++++++++++
2 files changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7f09f8d2/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index e9a7c58..e00e447 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -599,6 +599,9 @@ Release 2.7.0 - UNRELEASED
YARN-2899. Run TestDockerContainerExecutorWithMocks on Linux only.
(Ming Ma via cnauroth)
+ YARN-2749. Fix some testcases from TestLogAggregationService fails in trunk.
+ (Xuan Gong via junping_du)
+
Release 2.6.0 - 2014-11-18
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7f09f8d2/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
----------------------------------------------------------------------
diff --git a/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 b/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 20887b6..8eb00f4 100644
--- a/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
+++ b/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
@@ -117,6 +117,8 @@ public class AppLogAggregatorImpl implements AppLogAggregator {
private final int retentionSize;
private final long rollingMonitorInterval;
private final NodeId nodeId;
+ // This variable is only for testing
+ private final AtomicBoolean waiting = new AtomicBoolean(false);
private final Map<ContainerId, ContainerLogAggregator> containerLogAggregators =
new HashMap<ContainerId, ContainerLogAggregator>();
@@ -391,6 +393,7 @@ public class AppLogAggregatorImpl implements AppLogAggregator {
while (!this.appFinishing.get() && !this.aborted.get()) {
synchronized(this) {
try {
+ waiting.set(true);
if (this.rollingMonitorInterval > 0) {
wait(this.rollingMonitorInterval * 1000);
if (this.appFinishing.get() || this.aborted.get()) {
@@ -507,7 +510,19 @@ public class AppLogAggregatorImpl implements AppLogAggregator {
@Private
@VisibleForTesting
+ // This is only used for testing.
+ // This will wake the log aggregation thread that is waiting for
+ // rollingMonitorInterval.
+ // To use this method, make sure the log aggregation thread is running
+ // and waiting for rollingMonitorInterval.
public synchronized void doLogAggregationOutOfBand() {
+ while(!waiting.get()) {
+ try {
+ wait(200);
+ } catch (InterruptedException e) {
+ // Do Nothing
+ }
+ }
LOG.info("Do OutOfBand log aggregation");
this.notifyAll();
}