Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4379915

nsk regresab66 test crashes Merlin HotSpot Server VM on Solaris-Sparc

XMLWordPrintable

    • beta2
    • x86, sparc
    • generic, solaris_7, solaris_8, windows_nt
    • Verified



      Name: abR10010 Date: 10/17/2000



      The regression test (testbase_nsk) nsk/regression/regresab66 crashes
      the HotSpot Server VM (build 1.4beta-B36) in mixed mode on Solaris-Sparc.

      The test generates a concurrently executed thread and expects
      this thread to finish checking in loop a special flag,
      but the HotSpot VM crashes.

      This failure does not happen for the HotSpot Client VM and for
      Ladybird 1.3.1-b3 Solaris-Sparc.
      Also, the test passes in int and comp modes as well as on win32
      in all modes.

      This bug prevents the nsk/regression/b4322869 test from passing.

      See logs and test source:

      In mixed mode:

      % java -server -version
      java version "1.4.0beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0beta-b36)
      Java HotSpot(TM) Server VM (build 1.4beta-B36, mixed mode)

      % java -server regresab66
      ==> nsk/regression/regresab66 test LOG:
      --> regresab66: test execution time limit = 30 seconds
      --> regresab66: Thread "regresab66a" started
      #
      # HotSpot Virtual Machine Error, Unexpected Signal 11
      # Please report this error at
      # http://java.sun.com/cgi-bin/bugreport.cgi
      #
      # Error ID: 4F533F534F4C415249530E43505007AB 01
      #
      # Problematic Thread: prio=5 tid=0x9c9e0 nid=0xb runnable
      #
      Abort

      (Error ID: os_solaris.cpp, 1963)


      In compiled mode:

      % java -server -Xcomp regresab66
      ==> nsk/regression/regresab66 test LOG:
      --> regresab66: test execution time limit = 30 seconds
      --> regresab66: Thread "regresab66a" started

      --> regresab66: test execution time elapsed!
      --> regresab66: test execution time = 0m. 30s
      --> total number of made iterations = 5554574
      ==> nsk/regression/regresab66 test PASSED


      The nsk/regression/regresab66 test source:
      ===============================================================================
      // File: %Z%%M% %I% %E%
      // Copyright %G% Sun Microsystems, Inc. All Rights Reserved

      public class regresab66 implements Cloneable {

          static java.io.PrintStream log_out;
       
          static long limit_time_seconds = 30;
          static long limit_time_millis = limit_time_seconds * 1000;
       
          public static Object dummy;
          static volatile int test_result;

        static class regresab66a extends Thread {
          String thread_name;

          public regresab66a(String p_thread_name) {
              thread_name = p_thread_name;
          }

          public void run() {
              log_out.println("--> regresab66: Thread " + thread_name + " started");
              long test_beg_time_millis = System.currentTimeMillis();
              for (long i = 1; i > 0; i++) {
                  long test_execution_time_millis = System.currentTimeMillis() - test_beg_time_millis;
                  if ( test_execution_time_millis >= limit_time_millis ) {
                      log_out.println("\n--> regresab66: test execution time elapsed!");
                      long execution_time_second = (long)(test_execution_time_millis / 1000);
                      long execution_time_minute = (long)(execution_time_second / 60);
                      execution_time_second = execution_time_second - (execution_time_minute * 60);
                      log_out.println("--> regresab66: test execution time = "
                          + execution_time_minute + "m. " + execution_time_second + "s");
                      log_out.println("--> total number of made iterations = "+i);
                      test_result = 0/*STATUS_PASSED*/;
                      break;
                  }
              }
          }
        }

          public static int run(String argv[], java.io.PrintStream out) {

              log_out = out;

              log_out.println("==> nsk/regression/regresab66 test LOG:");

              log_out.println
                  ("--> regresab66: test execution time limit = " + limit_time_seconds + " seconds");

              test_result = 2/*STATUS_FAILED*/;
              regresab66a t = new regresab66a("\"regresab66a\"");
              t.start();

              while ( t.isAlive() ) {
                  dummy = new int[32768];
                  if ( test_result != 2/*STATUS_FAILED*/ ) {
                      break;
                  }
              }
              if ( test_result == 2/*STATUS_FAILED*/ ) {
                  log_out.println("==> nsk/regression/regresab66 test FAILED");
              }
              else {
                  log_out.println("==> nsk/regression/regresab66 test PASSED");
              }
              return test_result;
          }

          public static void main(String argv[]) {
              System.exit(run(argv, System.out) + 95/*STATUS_TEMP*/);
          }

      } // end class regresab66

      ===============================================================================


      ======================================================================

            jrose John Rose
            bondsunw Bond Bond (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: