This is an automated email from the ASF dual-hosted git repository.
shuzirra pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new a967033 YARN-10427. Duplicate Job IDs in SLS output (#3809).
Contributed by Szilard Nemeth
a967033 is described below
commit a967033a9f187625fcf4981581a0eaa29ac12cdf
Author: Szilard Nemeth <[email protected]>
AuthorDate: Fri Dec 17 00:34:16 2021 +0100
YARN-10427. Duplicate Job IDs in SLS output (#3809). Contributed by Szilard
Nemeth
---
.../org/apache/hadoop/yarn/sls/appmaster/AMSimulator.java | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git
a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/AMSimulator.java
b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/AMSimulator.java
index 5315eaa..922f9a2 100644
---
a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/AMSimulator.java
+++
b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/AMSimulator.java
@@ -75,6 +75,7 @@ import org.slf4j.LoggerFactory;
@Private
@Unstable
public abstract class AMSimulator extends TaskRunner.Task {
+ private static final long FINISH_TIME_NOT_INITIALIZED = Long.MIN_VALUE;
// resource manager
protected ResourceManager rm;
// main
@@ -102,7 +103,7 @@ public abstract class AMSimulator extends TaskRunner.Task {
protected long traceStartTimeMS;
protected long traceFinishTimeMS;
protected long simulateStartTimeMS;
- protected long simulateFinishTimeMS;
+ protected long simulateFinishTimeMS = FINISH_TIME_NOT_INITIALIZED;
// whether tracked in Metrics
protected boolean isTracked;
// progress
@@ -226,6 +227,16 @@ public abstract class AMSimulator extends TaskRunner.Task {
@Override
public void lastStep() throws Exception {
+ if (simulateFinishTimeMS != FINISH_TIME_NOT_INITIALIZED) {
+ // The finish time is already recorded.
+ // Different value from zero means lastStep was called before.
+ // We want to prevent lastStep to be called more than once.
+ // See YARN-10427 for more details.
+ LOG.warn("Method AMSimulator#lastStep was already called. " +
+ "Skipping execution of method for application: {}", appId);
+ return;
+ }
+
LOG.info("Application {} is shutting down.", appId);
// unregister tracking
if (isTracked) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]