Ian Maxon has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1521

Change subject: Make Xmx small on 32bit JVM
......................................................................

Make Xmx small on 32bit JVM

There can be issues with the default memory parameter settings
if run on a 32Bit JVM, as the maximum RAM can be large due to
PAE or using 32bit JVM on a 64bit OS, therefore leading to an
-Xmx setting that is too large to address.

This makes the maximum 1GB by default on 32bit JVMs, as there
is a related issue on Windows where 32 bit processes are
limited to about 1.5G per process.

Change-Id: I025174fc2ca53e8d15ed53fac31b43bea3ddf281
---
M asterixdb/asterix-client-helper/pom.xml
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
M asterixdb/asterix-server/src/main/opt/local/bin/start-sample-cluster.bat
M asterixdb/asterix-server/src/main/opt/local/bin/stop-sample-cluster.bat
M 
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
M 
hyracks-fullstack/hyracks/hyracks-control/hyracks-nc-service/src/main/java/org/apache/hyracks/control/nc/service/NCService.java
6 files changed, 33 insertions(+), 50 deletions(-)


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

diff --git a/asterixdb/asterix-client-helper/pom.xml 
b/asterixdb/asterix-client-helper/pom.xml
index 9a7bb64..726e8fa 100644
--- a/asterixdb/asterix-client-helper/pom.xml
+++ b/asterixdb/asterix-client-helper/pom.xml
@@ -41,26 +41,17 @@
             <program>
               <platforms>
                 <platform>unix</platform>
+                <platform>windows</platform>
               </platforms>
               <name>asterixhelper</name>
               
<mainClass>org.apache.asterix.clienthelper.AsterixHelper</mainClass>
             </program>
           </programs>
-          <daemons>
-            <daemon>
-              <id>asterixhelper</id>
-              
<mainClass>org.apache.asterix.clienthelper.AsterixHelper</mainClass>
-              <platforms>
-                <platform>booter-windows</platform>
-              </platforms>
-            </daemon>
-          </daemons>
         </configuration>
         <executions>
           <execution>
             <goals>
               <goal>assemble</goal>
-              <goal>generate-daemons</goal>
             </goals>
           </execution>
         </executions>
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
index dd7c8e4..83ff3a2 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
@@ -31,7 +31,7 @@
 // 3000 ---- 3999: feed errors
 // 4000 ---- 4999: lifecycle management errors
 public class ErrorCode {
-    private static final String RESOURCE_PATH = "asx_errormsg" + 
File.separator + "en.properties";
+    private static final String RESOURCE_PATH = "asx_errormsg/en.properties";
     public static final String ASTERIX = "ASX";
 
     // Extension errors
diff --git 
a/asterixdb/asterix-server/src/main/opt/local/bin/start-sample-cluster.bat 
b/asterixdb/asterix-server/src/main/opt/local/bin/start-sample-cluster.bat
index 580e1e0..74ca87e 100644
--- a/asterixdb/asterix-server/src/main/opt/local/bin/start-sample-cluster.bat
+++ b/asterixdb/asterix-server/src/main/opt/local/bin/start-sample-cluster.bat
@@ -52,20 +52,6 @@
 goto opts
 :postopts
 
-if NOT DEFINED JAVA_HOME (
-  echo ERROR: JAVA_HOME not defined
-  goto :ERROR
-)
-REM ensure JAVA_HOME has no spaces nor quotes, since appassembler can't handle 
them
-set JAVA_HOME=%JAVA_HOME:"=%
-for %%I in ("%JAVA_HOME%") do (
-  set JAVA_HOME=%%~sI
-)
-
-set JAVACMD=%JAVA_HOME%\bin\java
-
-REM TODO(mblow): check java version, spaces in CWD
-
 set DIRNAME=%~dp0
 
 pushd %DIRNAME%\..
@@ -92,7 +78,7 @@
 
 wmic process where ^
   "name='java.exe' and CommandLine like 
'%%org.codehaus.mojo.appassembler.booter.AppassemblerBooter%%' and (CommandLine 
like '%%app.name=\"%%[cn]c\"%%' or CommandLine like 
'%%app.name=\"%%ncservice\"%%')" ^
-  GET processid > %tempfile% 2>/dev/null
+  GET processid > %tempfile% 2> nul
 
 set severity=ERROR
 if "%force%" == "1" set severity=WARNING
diff --git 
a/asterixdb/asterix-server/src/main/opt/local/bin/stop-sample-cluster.bat 
b/asterixdb/asterix-server/src/main/opt/local/bin/stop-sample-cluster.bat
index 7ac9483..6b02174 100644
--- a/asterixdb/asterix-server/src/main/opt/local/bin/stop-sample-cluster.bat
+++ b/asterixdb/asterix-server/src/main/opt/local/bin/stop-sample-cluster.bat
@@ -58,17 +58,6 @@
 goto opts
 :postopts
 
-if NOT DEFINED JAVA_HOME (
-  echo ERROR: JAVA_HOME not defined
-  goto :ERROR
-)
-
-REM ensure JAVA_HOME has no spaces nor quotes, since appassembler can't handle 
them
-set JAVA_HOME=%JAVA_HOME:"=%
-for %%I in ("%JAVA_HOME%") do (
-  set JAVA_HOME=%%~sI
-)
-
 set DIRNAME=%~dp0
 
 pushd %DIRNAME%\..
@@ -92,12 +81,12 @@
 if "%tries%" == "60" goto :timed_out
 wmic process where ^
   "name='java.exe' and CommandLine like 
'%%org.codehaus.mojo.appassembler.booter.AppassemblerBooter%%' and (CommandLine 
like '%%app.name=\"%%[cn]c\"%%' or CommandLine like 
'%%app.name=\"%%ncservice\"%%')" ^
-  GET processid >%tempfile% 2>/dev/null
+  GET processid >%tempfile% 2> nul
 
 set found=
 for /F "skip=1" %%P in ('type %tempfile%') DO set found=1
 if "%found%" == "1" (
-  timeout /T 1 /NOBREAK >/dev/null
+  timeout /T 1 /NOBREAK > nul
   goto :wait_loop
 )
 goto :post_shutdown
@@ -110,7 +99,7 @@
 
 wmic process where ^
   "name='java.exe' and CommandLine like 
'%%org.codehaus.mojo.appassembler.booter.AppassemblerBooter%%' and (CommandLine 
like '%%app.name=\"%%[cn]c\"%%' or CommandLine like 
'%%app.name=\"%%ncservice\"%%')" ^
-  GET processid > %tempfile% 2>/dev/null
+  GET processid > %tempfile% 2> nul
 
 set found=
 for /F "skip=1" %%P in ('type %tempfile%') DO set found=1
diff --git 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
index 3d99cdb..8d312d5 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/exceptions/ErrorCode.java
@@ -31,7 +31,7 @@
  * 10000 ---- 19999: compilation errors
  */
 public class ErrorCode {
-    private static final String RESOURCE_PATH = "errormsg" + File.separator + 
"en.properties";
+    private static final String RESOURCE_PATH = "errormsg/en.properties";
     public static final String HYRACKS = "HYR";
 
     // Runtime error codes.
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 5a03d3c..88ba3f2 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
@@ -111,7 +111,19 @@
         return cList;
     }
 
-    private static void configEnvironment(Map<String,String> env) {
+    private static boolean is64Bit() {
+        String prop = System.getProperty("sun.arch.data.model");
+        if(prop == null || prop.equals("unknown")) {
+            //assert true if the property is null, this check mainly is to 
avoid a specific default behavior
+            //where a 32 bit JVM is run on a 64 bit OS which has a lot of 
available RAM
+            return true;
+        }
+        else{
+            return prop.equals("64");
+        }
+    }
+
+    private static void configEnvironment(Map<String, String> env) {
         String jvmargs = IniUtils.getString(ini, nodeSection, "jvm.args", 
null);
         if (jvmargs != null) {
             LOGGER.info("Using JAVA_OPTS from conf file (jvm.args)");
@@ -122,7 +134,11 @@
             } else {
                 LOGGER.info("Using default JAVA_OPTS");
                 long ramSize = ((com.sun.management.OperatingSystemMXBean) 
osMXBean).getTotalPhysicalMemorySize();
-                jvmargs = "-Xmx" + (int) Math.ceil(0.6 * ramSize / (1024 * 
1024)) + "m";
+                if (is64Bit()) {
+                    jvmargs = "-Xmx" + (int) Math.ceil(0.6 * ramSize / (1024 * 
1024)) + "m";
+                } else {
+                    jvmargs = "-Xmx" + Math.min((int) Math.ceil(0.6 * ramSize 
/ (1024 * 1024)), 1024) + "m";
+                }
             }
         }
         env.put("JAVA_OPTS", jvmargs);
@@ -132,10 +148,11 @@
     /**
      * Attempts to launch the "real" NCDriver, based on the configuration
      * information gathered so far.
+     * 
      * @return true if the process was successfully launched and has now
-     * exited with a 0 (normal) exit code. false if some configuration error
-     * prevented the process from being launched or the process returned
-     * a non-0 (abnormal) exit code.
+     *         exited with a 0 (normal) exit code. false if some configuration 
error
+     *         prevented the process from being launched or the process 
returned
+     *         a non-0 (abnormal) exit code.
      */
     private static boolean launchNCProcess() {
         try {
@@ -149,11 +166,11 @@
             }
 
             // Logfile
-            if (! "-".equals(config.logdir)) {
+            if (!"-".equals(config.logdir)) {
                 pb.redirectErrorStream(true);
                 File log = new File(config.logdir);
-                if (! log.mkdirs()) {
-                    if (! log.isDirectory()) {
+                if (!log.mkdirs()) {
+                    if (!log.isDirectory()) {
                         throw new IOException(config.logdir + ": cannot 
create");
                     }
                     // If the directory IS there, all is well
@@ -202,7 +219,7 @@
         try {
             ObjectInputStream ois = new ObjectInputStream(is);
             String magic = ois.readUTF();
-            if (! ServiceConstants.NC_SERVICE_MAGIC_COOKIE.equals(magic)) {
+            if (!ServiceConstants.NC_SERVICE_MAGIC_COOKIE.equals(magic)) {
                 LOGGER.severe("Connection used incorrect magic cookie");
                 return false;
             }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1521
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I025174fc2ca53e8d15ed53fac31b43bea3ddf281
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ian Maxon <ima...@apache.org>

Reply via email to