>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