diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 2f2528445d3..11a5ba594a3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -720,6 +720,9 @@ public static boolean isAclEnabled(Configuration conf) { /** Zookeeper interaction configs */ public static final String RM_ZK_PREFIX = RM_PREFIX + "zk-"; + public static final String RM_ZK_MAX_BUFFER = RM_ZK_PREFIX + "jute-maxbuffer"; + public static final int DEFAULT_ZK_MAX_BUFFER = 1000000; + public static final String RM_ZK_ADDRESS = RM_ZK_PREFIX + "address"; public static final String RM_ZK_NUM_RETRIES = RM_ZK_PREFIX + "num-retries"; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java index bd645d7c733..667421a1a90 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java @@ -154,6 +154,7 @@ private final Set applicationTags; private Map applicationSchedulingEnvs = new HashMap<>(); + private final int zkMaxBuffer; private final long attemptFailuresValidityInterval; private boolean amBlacklistingEnabled = false; private float blacklistDisableThreshold; @@ -491,6 +492,8 @@ public RMAppImpl(ApplicationId applicationId, RMContext rmContext, + "."); } + zkMaxBuffer = conf.getInt(YarnConfiguration.RM_ZK_MAX_BUFFER, YarnConfiguration.DEFAULT_ZK_MAX_BUFFER); + ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); this.readLock = lock.readLock(); this.writeLock = lock.writeLock(); @@ -1327,6 +1330,11 @@ private void rememberTargetTransitionsAndStoreState(RMAppEvent event, break; } + if (diags.length() > zkMaxBuffer) { + diags = diags.substring(0, zkMaxBuffer); + LOG.warn("The diags is too long, so it needs to be intercepted : " + diags); + } + ApplicationStateData appState = ApplicationStateData.newInstance(this.submitTime, this.startTime, this.user, this.submissionContext,