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

virajjasani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/phoenix-adapters.git


The following commit(s) were added to refs/heads/main by this push:
     new 5570feb  Fix JDK17 GC options + JPMS flags
5570feb is described below

commit 5570febcf1702502441e4f576ea4ff3663ad653a
Author: Anish Dubey <[email protected]>
AuthorDate: Thu Jun 25 01:44:59 2026 -0400

    Fix JDK17 GC options + JPMS flags
---
 bin/phoenix-adapters | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/bin/phoenix-adapters b/bin/phoenix-adapters
index e6267b3..ebd93dd 100755
--- a/bin/phoenix-adapters
+++ b/bin/phoenix-adapters
@@ -287,12 +287,18 @@ if [ -z "${PHOENIX_REST_OPTS}" ] ; then
     PHOENIX_REST_OPTS="-XX:+UseG1GC"
     PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:+HeapDumpOnOutOfMemoryError"
     PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS 
-XX:HeapDumpPath=$PHOENIX_ADAPTERS_LOG_DIR"
-    PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:+UseGCLogFileRotation"
-    PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:NumberOfGCLogFiles=5"
-    PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:GCLogFileSize=20M"
-    PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:+PrintGCDetails"
-    PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:+PrintGCDateStamps"
-    PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS 
-Xloggc:$PHOENIX_ADAPTERS_LOG_DIR/gc.log"
+    # GC logging + JPMS flags differ by JDK: JDK 9+ removed the legacy 
GC-logging flags
+    # 
(UseGCLogFileRotation/NumberOfGCLogFiles/GCLogFileSize/PrintGCDetails/PrintGCDateStamps/
+    # Xloggc) and needs unified -Xlog plus --add-opens/--add-exports, while 
JDK 8 rejects both
+    # -Xlog and the JPMS flags. Gate on the running JDK major (same mechanism 
as Hadoop's
+    # hadoop-env.sh) so the launcher works on both JDK 8 (e.g. AWS) and JDK 17 
(e.g. GCP).
+    JDK_MAJOR="${JDK_MAJOR:-$("$JAVA" -version 2>&1 | awk -F'"' 
'/version/{print $2}' | cut -d. -f1)}"
+    if [ "${JDK_MAJOR:-8}" -ge 9 ]; then
+        PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS 
-Xlog:gc*:file=$PHOENIX_ADAPTERS_LOG_DIR/gc.log:time,uptime,level,tags:filecount=5,filesize=20M"
+        PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS 
--add-opens=java.base/java.lang=ALL-UNNAMED 
--add-opens=java.base/java.util=ALL-UNNAMED 
--add-opens=java.base/java.io=ALL-UNNAMED 
--add-opens=java.base/java.nio=ALL-UNNAMED 
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED 
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED 
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED 
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED 
--add-exports=java.base/sun.security.action=ALL-UNNAMED --a [...]
+    else
+        PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS -XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -XX:+PrintGCDetails 
-XX:+PrintGCDateStamps -Xloggc:$PHOENIX_ADAPTERS_LOG_DIR/gc.log"
+    fi
     PHOENIX_REST_OPTS="$PHOENIX_REST_OPTS 
-Dphoenix.adapters.log.dir=$PHOENIX_ADAPTERS_LOG_DIR"
     export PHOENIX_REST_OPTS
 fi

Reply via email to