|
@@ -33,6 +33,7 @@ import java.util.concurrent.locks.Lock;
|
|
import java.util.concurrent.locks.ReadWriteLock;
|
|
import java.util.concurrent.locks.ReadWriteLock;
|
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
|
|
|
|
|
|
|
+import com.google.common.annotations.VisibleForTesting;
|
|
import org.apache.commons.logging.Log;
|
|
import org.apache.commons.logging.Log;
|
|
import org.apache.commons.logging.LogFactory;
|
|
import org.apache.commons.logging.LogFactory;
|
|
import org.apache.hadoop.conf.Configuration;
|
|
import org.apache.hadoop.conf.Configuration;
|
|
@@ -155,6 +156,16 @@ public class ContainerImpl implements Container {
|
|
this.containerRetryContext = ContainerRetryContext.NEVER_RETRY_CONTEXT;
|
|
this.containerRetryContext = ContainerRetryContext.NEVER_RETRY_CONTEXT;
|
|
}
|
|
}
|
|
this.remainingRetryAttempts = containerRetryContext.getMaxRetries();
|
|
this.remainingRetryAttempts = containerRetryContext.getMaxRetries();
|
|
|
|
+ int minimumRestartInterval = conf.getInt(
|
|
|
|
+ YarnConfiguration.NM_CONTAINER_RETRY_MINIMUM_INTERVAL_MS,
|
|
|
|
+ YarnConfiguration.DEFAULT_NM_CONTAINER_RETRY_MINIMUM_INTERVAL_MS);
|
|
|
|
+ if (containerRetryContext.getRetryPolicy()
|
|
|
|
+ != ContainerRetryPolicy.NEVER_RETRY
|
|
|
|
+ && containerRetryContext.getRetryInterval() < minimumRestartInterval) {
|
|
|
|
+ LOG.info("Set restart interval to minimum value " + minimumRestartInterval
|
|
|
|
+ + "ms for container " + containerTokenIdentifier.getContainerID());
|
|
|
|
+ this.containerRetryContext.setRetryInterval(minimumRestartInterval);
|
|
|
|
+ }
|
|
this.diagnosticsMaxSize = conf.getInt(
|
|
this.diagnosticsMaxSize = conf.getInt(
|
|
YarnConfiguration.NM_CONTAINER_DIAGNOSTICS_MAXIMUM_SIZE,
|
|
YarnConfiguration.NM_CONTAINER_DIAGNOSTICS_MAXIMUM_SIZE,
|
|
YarnConfiguration.DEFAULT_NM_CONTAINER_DIAGNOSTICS_MAXIMUM_SIZE);
|
|
YarnConfiguration.DEFAULT_NM_CONTAINER_DIAGNOSTICS_MAXIMUM_SIZE);
|
|
@@ -1368,4 +1379,9 @@ public class ContainerImpl implements Container {
|
|
LocalResourceRequest resource) {
|
|
LocalResourceRequest resource) {
|
|
return container.resourcesUploadPolicies.get(resource);
|
|
return container.resourcesUploadPolicies.get(resource);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @VisibleForTesting
|
|
|
|
+ ContainerRetryContext getContainerRetryContext() {
|
|
|
|
+ return containerRetryContext;
|
|
|
|
+ }
|
|
}
|
|
}
|