This is an automated email from the ASF dual-hosted git repository.

abstractdog pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tez.git


The following commit(s) were added to refs/heads/master by this push:
     new 2b671d6  TEZ-4299: Default java opts cause jdk11 to fail (#116) 
(Laszlo Bodor reviewed by Jonathan Turner Eagles)
2b671d6 is described below

commit 2b671d6211ad8bdebaa16889bf4f1f4121c4f1f9
Author: Bodor Laszlo <[email protected]>
AuthorDate: Mon Apr 5 11:55:20 2021 +0200

    TEZ-4299: Default java opts cause jdk11 to fail (#116) (Laszlo Bodor 
reviewed by Jonathan Turner Eagles)
---
 .../java/org/apache/tez/common/TezCommonUtils.java  |  6 ++++++
 .../org/apache/tez/dag/api/TezConfiguration.java    | 21 +++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java 
b/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
index 2725958..3163968 100644
--- a/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
+++ b/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
@@ -566,4 +566,10 @@ public class TezCommonUtils {
     return 1000l * timeoutSecs;
   }
 
+  public static int getJavaVersion() {
+    String javaVersionString = System.getProperty("java.version");
+    return javaVersionString.split("\\.")[0].equals("1")
+      ? Integer.parseInt(javaVersionString.split("\\.")[1]) // "1.8" -> 8
+      : Integer.parseInt(javaVersionString.split("\\.")[0]); // "9.x" -> 9, 
"11.x" -> 11
+  }
 }
diff --git a/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java 
b/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
index eef0d65..17a826e 100644
--- a/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
+++ b/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
@@ -33,6 +33,7 @@ import 
org.apache.hadoop.classification.InterfaceStability.Unstable;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.util.Shell;
 import org.apache.hadoop.yarn.api.records.LocalResource;
+import org.apache.tez.common.TezCommonUtils;
 import org.apache.tez.common.annotation.ConfigurationClass;
 import org.apache.tez.common.annotation.ConfigurationProperty;
 import org.apache.tez.dag.api.EdgeProperty.ConcurrentEdgeTriggerType;
@@ -343,8 +344,11 @@ public class TezConfiguration extends Configuration {
   @ConfigurationScope(Scope.AM)
   @ConfigurationProperty
   public static final String TEZ_AM_LAUNCH_CMD_OPTS = TEZ_AM_PREFIX +  
"launch.cmd-opts";
-  public static final String TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT =
+  public static final String TEZ_AM_LAUNCH_CMD_OPTS_JDK8_DEFAULT =
       "-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA 
-XX:+UseParallelGC";
+  public static final String TEZ_AM_LAUNCH_CMD_OPTS_JDK9_DEFAULT =
+      "-verbose:gc -Xlog:gc*,safepoint::time,uptime -XX:+UseNUMA 
-XX:+UseParallelGC";
+  public static final String TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT;
 
   /**
    * String value. Command line options which will be prepended to {@link
@@ -368,8 +372,21 @@ public class TezConfiguration extends Configuration {
   @ConfigurationProperty
   public static final String TEZ_TASK_LAUNCH_CMD_OPTS = TEZ_TASK_PREFIX
       + "launch.cmd-opts";
-  public static final String TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT =
+  public static final String TEZ_TASK_LAUNCH_CMD_OPTS_JDK8_DEFAULT =
       "-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA 
-XX:+UseParallelGC";
+  public static final String TEZ_TASK_LAUNCH_CMD_OPTS_JDK9_DEFAULT =
+      "-verbose:gc -Xlog:gc*,safepoint::time,uptime -XX:+UseNUMA 
-XX:+UseParallelGC";
+  public static final String TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT;
+
+  static {
+    if (TezCommonUtils.getJavaVersion() >= 9) {
+      TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT = TEZ_AM_LAUNCH_CMD_OPTS_JDK9_DEFAULT;
+      TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT = TEZ_TASK_LAUNCH_CMD_OPTS_JDK9_DEFAULT;
+    } else {
+      TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT = TEZ_AM_LAUNCH_CMD_OPTS_JDK8_DEFAULT;
+      TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT = TEZ_TASK_LAUNCH_CMD_OPTS_JDK8_DEFAULT;
+    }
+  }
 
   /**
    * Double value. Tez automatically determines the Xmx for the JVMs used to 
run

Reply via email to