Debugging HotSpot failures on the Solaris operating environment
 Technote (troubleshooting)
 
Problem(Abstract)
The following information helps determine the failing class or method of a HotSpot failure on Solaris. The following also describes how to avoid some of these failures.
 
Resolving the problem
If you receive multiple HotSpot failures and cannot determine the cause, try the following actions to provide a workaround:
  1. Enable PrintCompilation.
    • For releases of WebSphere Application Server V5.0:
      1. In the Administrative Console, navigate to Servers > Application Servers > server_name.

      2. In the Additional Properties section, select Process Definition > Java Virtual Machine > Generic JVM arguments.

      3. Add the following JVM argument:

        -XX:+PrintCompilation

      4. Restart the JVM for the change to take effect.

    • For releases of WebSphere Application Server V4.0:
      Add the following Java™ virtual machine (JVM) argument.
      • For Application Servers:
        1. In the Administrative Console, select the JVM settings tab of the Application Server.

        2. Select Advanced JVM settings > Command line arguments.

        3. Add the following argument:

          -XX:+PrintCompilation

        4. Restart the JVM for the change to take effect.

      • For Administrative Server:
        1. Open the following file:

          install_root\bin\admin.configuration

        2. Find the following line:

          com.ibm.ejs.sm.util.process.Nanny.adminServerJvmArgs

        3. Add the following argument to the line:

          -XX:+PrintCompilation

        4. Restart the JVM for the change to take effect.

    Note:
    PrintCompilation writes to the native_stdout (for version 5.0) and stdout (for version 4.0) file for the JVM, indicating the class and method that are being HotSpot compiled. Identifying the method compiled before the crash occurs is often helpful in providing a workaround to stabilize the JVM.

    Example of PrintCompilation output:

    java.lang.String::<init> (157 bytes)
    java.lang.String::hashCode (60 bytes)
    java.util.jar.Attributes::read (256 bytes)
    com.ibm.sslite.e::a (691 bytes)
    com.ibm.sslite.h::c (428 bytes)

    An unexpected exception has been detected in native code outside the
    .  Unexpected Signal : 11 occurred at PC=0xff330924
    Function name=memcpy
    Library=/usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1  

  2. Identify the failing class and method compiled prior to the JVM issuing a HotSpot failure. In the preceding example, com.ibm.sslite.h::c.

  3. Configure the HotSpot runtime compiler to skip compilation of this method by creating a file named .hotspot_compiler and add the information in the file in the following format:

    exclude <package/className> <methodName>

    For example:

    exclude com/ibm/sslite/h c

    Note: The hotspot_compiler should be copied to the current working directory. To verify the working directory of the JVM, perform the following:
    • For releases of WebSphere Application Server V5.0, check for the following in server.xml file:

      workingDirectory="${USER_INSTALL_ROOT}"

    • For releases of WebSphere Application Server V4.0, check for the following in a full XML config export:

      <working-directory>C:/WebSphere/AppServer/bin
      </working-directory>

  4. Confirming the method is skipped from HotSpot compilation. If the method was skipped correctly, you will see the following information in the stdout(for version 4.0) or native_stdout(for version 5.0) file:

    For the preceding sslite example:

    CompilerOracle: exclude com/ibm/sslite/h c

Note: If the HotSpot failure is avoided, notify Sun Microsystems by opening a bug report at: http://java.sun.com/cgi-bin/bugreport.cgi
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > Java SDK
Operating system(s): Solaris
Software version: 5.0
Software edition:
Reference #: 1081179
IBM Group: Software Group
Modified date: Feb 23, 2006