>From Ian Maxon <ima...@uci.edu>:

Ian Maxon has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18271 )


Change subject: [ASTERIXDB-3396][CONF] Tweak memory, 'add-open' flags
......................................................................

[ASTERIXDB-3396][CONF] Tweak memory, 'add-open' flags

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
In JDK17, we are encountering module access errors that
appear in the log. This is due to not having the right
access flags added to the JVM

Additionally, the NCService integration tests are failing
due to memory overuse. This patch tweaks the default allocation
to be 50% instead of 60% of the host memory.

Change-Id: I13ec2c1063754b93d1fad551362134c0d1c593d5
---
M 
hyracks-fullstack/hyracks/hyracks-control/hyracks-nc-service/src/main/java/org/apache/hyracks/control/nc/service/NCService.java
1 file changed, 39 insertions(+), 1 deletion(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/71/18271/1

diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-nc-service/src/main/java/org/apache/hyracks/control/nc/service/NCService.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-nc-service/src/main/java/org/apache/hyracks/control/nc/service/NCService.java
index 97dc344..69dde7a 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-nc-service/src/main/java/org/apache/hyracks/control/nc/service/NCService.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-nc-service/src/main/java/org/apache/hyracks/control/nc/service/NCService.java
@@ -31,6 +31,7 @@
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -85,6 +86,12 @@
      */
     private static OperatingSystemMXBean osMXBean;

+    public static final String[] DEFAULT_ADD_OPENS =
+            { 
"--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED",
+                    "--add-opens=java.management/sun.management=ALL-UNNAMED",
+                    "--add-opens=java.base/java.lang=ALL-UNNAMED", 
"--add-opens=java.base/java.nio=ALL-UNNAMED",
+                    
"--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" };
+
     private static List<String> buildCommand() throws IOException {
         List<String> cList = new ArrayList<>();

@@ -118,6 +125,7 @@
     }

     private static void configEnvironment(Map<String, String> env) {
+
         String jvmargs = ConfigUtils.getString(ini, nodeSection, 
NCConfig.Option.JVM_ARGS.ini(), null);
         if (jvmargs != null) {
             LOGGER.info("Using JAVA_OPTS from conf file (jvm.args)");
@@ -134,12 +142,20 @@
         // Sets up memory parameter if it is not specified.
         if (!jvmargs.contains("-Xmx")) {
             long ramSize = ((com.sun.management.OperatingSystemMXBean) 
osMXBean).getTotalPhysicalMemorySize();
-            int proportionalRamSize = (int) Math.ceil(0.6 * ramSize / (1024 * 
1024));
+            int proportionalRamSize = (int) Math.ceil(0.5 * ramSize / (1024 * 
1024));
             //if under 32bit JVM, use less than 1GB heap by default. otherwise 
use proportional ramsize.
             int heapSize = 
"32".equals(System.getProperty("sun.arch.data.model"))
                     ? (proportionalRamSize <= 1024 ? proportionalRamSize : 
1024) : proportionalRamSize;
             jvmargs = jvmargs + " -Xmx" + heapSize + "m";
         }
+
+        // Squelch some module access warnings and errors from JDK9+
+        if (!jvmargs.contains("-add-opens")) {
+            StringBuilder jvmArgsBuilder = new StringBuilder(jvmargs);
+            Arrays.stream(DEFAULT_ADD_OPENS).map(s -> 
jvmArgsBuilder.append(s));
+            jvmargs = jvmArgsBuilder.toString();
+        }
+
         env.put("JAVA_OPTS", jvmargs.trim());
         LOGGER.info("Setting JAVA_OPTS to " + jvmargs);
     }

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18271
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: trinity
Gerrit-Change-Id: I13ec2c1063754b93d1fad551362134c0d1c593d5
Gerrit-Change-Number: 18271
Gerrit-PatchSet: 1
Gerrit-Owner: Ian Maxon <ima...@uci.edu>
Gerrit-MessageType: newchange

Reply via email to