Bug #57957 Solaris installers (Sparc and x86-64) includes only a 32-bit JVM
Submitted: 3 Nov 2010 16:20 Modified: 24 Jan 2011 21:03
Reporter: Mark Matthews Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Installing Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: BitRock Merlin CPU Architecture:Any

[3 Nov 2010 16:20] Mark Matthews
Description:
The service manager installer for sparc only includes a 32-bit JVM as that is the default as shipped by Oracle. We should be including the 64-bit overlay bits (the v9 JRE download) and on sparc platforms, the startup scripts should use something like "isainfo -v" to determine the allowable executables, and if "64-bit sparc" is present in the output, add "-d64" to JAVA_OPTS so that the 64-bit Hotspot JVM is enabled on platforms that support it.

How to repeat:
Install the app and try and configure it to use a heap larger than 3GB, or add "-d64" to JAVA_OPTS in setenv.sh and observe the failure to start.
[4 Nov 2010 11:10] BitRock Merlin
Patch sent to Andy. 

Notice that the current supported SPARC platforms are 9 and 10, 64 bits. We added "-d64" option for this installer independent of the system. We also checked that the Solaris-Intel-x64 version already included the 64bits Java libraries and the "-d64" option.
[18 Nov 2010 1:03] Enterprise Tools JIRA Robot
Andy Bang writes: 
In build 2.3.1.2039.
[19 Nov 2010 16:33] Enterprise Tools JIRA Robot
Carsten Segieth writes: 
with 2.3.1.2039 now '-d64' is present in a fresh install on Sparc, but ...

re-opening after talked with MarkM as the x86-64 install also fails (no -d64 in JAVA_OPTS):

... with raising the mem values, without adding '-d64', it does not start:

Using CATALINA_BASE: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat
Using CATALINA_HOME: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat
Using CATALINA_TMPDIR: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/temp
Using JAVA_HOME: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java
Using JRE_HOME: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java
Using _RUNJAVA: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java/bin/java
Using _RUNJAVA -version $(/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java/bin/java -version 2>&1)
Using JAVA_OPTS: -Xmx6768M -Xms4768M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/temp -XX:+UseParallelOldGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/conf/logging.properties" -Djava.awt.headless=true -server -XX:+UseBiasedLocking
Using CATALINA_OPTS:
Using JAVA_ENDORSED_DIRS: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/endorsed
Using CLASSPATH: :/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/bin/bootstrap.jar:/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/bin/commons-logging-api.jar
Invalid maximum heap size: -Xmx6768M
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.

... and when adding '-d64' it shows to be incomplete:

Using CATALINA_BASE: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat
Using CATALINA_HOME: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat
Using CATALINA_TMPDIR: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/temp
Using JAVA_HOME: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java
Using JRE_HOME: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java
Using _RUNJAVA: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java/bin/java
Using _RUNJAVA -version $(/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java/bin/java -version 2>&1)
Using JAVA_OPTS: -Xmx6768M -Xms4768M -d64 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/temp -XX:+UseParallelOldGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/conf/logging.properties" -Djava.awt.headless=true -server -XX:+UseBiasedLocking
Using CATALINA_OPTS:
Using JAVA_ENDORSED_DIRS: /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/endorsed
Using CLASSPATH: :/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/bin/bootstrap.jar:/build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/apache-tomcat/bin/commons-logging-api.jar
execve(): No such file or directory
Error trying to exec /build/merlin/qa/monitoring/2.3.1.2039/tyr52/48080/java/bin/amd64/java.
Check if file exists and permissions are set correctly.
Failed to start a 64-bit JVM process from a 32-bit JVM.
Either 64-bit processes are not supported by this platform
or the 64-bit components have not been installed.

... tested on tyr52 (S10x64)
[19 Nov 2010 16:49] BitRock Merlin
Hi Carsten,

Please notice that there are two different installers for Solaris-Intel (32 bits and 64 bits). We have checked that the 64bits installer includes the "-d64" option and the java libraries for the 64 bits are in the "java/lib/amd64" folder. Could you double check that you are using the Solaris-Intel 64 bits installer?
[19 Nov 2010 16:55] Enterprise Tools JIRA Robot
Carsten Segieth writes: 
sorry, I forgot to mention that the fresh install 2.3.1.2039 on Sparc worked fine: with -d64 in JAVA_OPTS.
[22 Nov 2010 9:38] BitRock Merlin
Patch sent to Andy. Please check if the "-d64" option is in the "apache-tomcat/bin/setenv.sh" file before creating the installer for the Solaris Intel 64 bits platform.
[22 Nov 2010 18:38] Enterprise Tools JIRA Robot
Andy Bang writes: 
Author: merlin
Date: 2010-11-22 18:44:33 +0100 (Mon, 22 Nov 2010)
New Revision: 1761

Modified:
   branches/2.3/bitrock/output-mysqlnetwork-solarisi64/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-solariss/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-solariss/apache-tomcat/bin/setenv.sh
Log:
Fixed EM-5021 / Bug #57957 - Solaris installers (Sparc and x86-64) includes only a 32-bit JVM
[22 Nov 2010 18:44] Enterprise Tools JIRA Robot
Andy Bang writes: 
Note that the fix above moves the -d64 from setenv.sh to catalina.sh for both Solaris SPARC and Solaris Intel x86-64.  In the past we have promised not to touch setenv.sh because that's where customers put their own local optimizations (e.g. memory settings based on how much RAM they have), so that's not an appropriate placed to put this.  If we were to leave it there, we'd have to figure out how to add during upgrade without changing what the customer has done.  Also, moving it to catalina.sh solves the upgrade problem because we always update that.
[22 Nov 2010 19:01] Enterprise Tools JIRA Robot
Andy Bang writes: 
In build 2.3.1.2040.
[23 Nov 2010 21:49] Enterprise Tools JIRA Robot
Carsten Segieth writes: 
- tested OK in 2.3.1.2040

- but re-opening for the pending fix in 2.2.4
[23 Nov 2010 22:28] Enterprise Tools JIRA Robot
Andy Bang writes: 
Author: merlin
Date: 2010-11-23 23:26:31 +0100 (Tue, 23 Nov 2010)
New Revision: 1765

Modified:
   branches/2.2/bitrock/output-mysqlnetwork-solarisi64/apache-tomcat/bin/catalina.sh
   branches/2.2/bitrock/output-mysqlnetwork-solariss/apache-tomcat/bin/catalina.sh
   branches/2.2/bitrock/output-mysqlnetwork-solariss/apache-tomcat/bin/setenv.sh
Log:
Fixed EM-5021 / Bug #57957 - Solaris installers (Sparc and x86-64) includes only a 32-bit JVM
[15 Dec 2010 23:45] Enterprise Tools JIRA Robot
Andy Bang writes: 
In build 2.2.4.1761.
[17 Dec 2010 9:27] Enterprise Tools JIRA Robot
Carsten Segieth writes: 
- update installers 2.2.4.1761 not yet checked

- RE-OPEN / REGRESSION: with 2.3.2.2048 the option '-d64' is missing again in both x86-64 and sparc install
[21 Dec 2010 18:07] Enterprise Tools JIRA Robot
Andy Bang writes: 
Author: merlin
Date: 2010-12-17 21:02:39 +0100 (Fri, 17 Dec 2010)
New Revision: 1794

Modified:
   branches/2.3/bitrock/output-mysqlnetwork-linux/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-linux64/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-osx/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-solarisi/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-solarisi64/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-solariss/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-windows/apache-tomcat/bin/catalina.sh
   branches/2.3/bitrock/output-mysqlnetwork-windows64/apache-tomcat/bin/catalina.sh
Log:
Use Java's 'server' mode
[11 Jan 2011 17:00] Enterprise Tools JIRA Robot
Andy Bang writes: 
Fix is in build 2.3.2.2050.
[24 Jan 2011 21:03] John Russell
Added to change log for 2.2.4 and 2.3.2:

For Solaris installations, MySQL Enterprise Monitor now uses the
64-bit HotSpot JVM on platforms that support it. The -d64 flag is now
included in the JAVA_OPTS setting, in the catalina.sh configuration
file.