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

java_g assertion failure: value out of range

XMLWordPrintable

    • solaris
    • sparc
    • solaris_7



      Name: szC45993 Date: 08/05/99



      Some set of debugging flags, used for Tonga/src/nsk/arguments/args00127 test,
      crashes java_g (HotSpot VM 1.0.1, build debug a) on Solaris
      (SunOS novo63 5.7 Generic_Patch sun4u sparc SUNW,Ultra-1System = SunOS).
      See log and sources below.

      novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/java_g -version
      java version "1.2.2"
      HotSpot VM (1.0.1, mixed mode, debug build a)
      novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/javac args00127.java
      novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/java_g -verify -XX:Flags=/export/ld24/java/zss/TONGA_WSs/testbase_js/src/nsk/arguments/args00127/args00127.opts args00127
      VM option '+PrintInterpreter'
      VM option '+PrintBytecodeHistogram'
      VM option '+PrintBytecodePairHistogram'
      VM option '+PrintSignatureHandlers'
      VM option '+VerifyOops'
      VM option '+VerifyFPU'
      VM option '+VerifyThread'
      VM option '+VerifyActivationFrameSize'
      VM option '+VerifyReceiver'
      VM option '+VerifyCounterOverflow'
      #
      # HotSpot Virtual Machine Error, assertion failure
      #
      # assert(nbits == 32 || -(1 << nbits-1) <= x && x < ( 1 << nbits-1), "value out of range")
      # Error ID: /net/mizu/usr/re/hotsparc1.0.1/src/solaris_only/hotsparc_beta_jvmg/build/solaris/../../src/cpu/sparc/vm/assembler_sparc.hpp, 954 [ Unknown ]
      #
      Dumping core....
      Abort (core dumped)
      novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/java_g -Xint -verify -XX:Flags=/export/ld24/java/zss/TONGA_WSs/testbase_js/src/nsk/arguments/args00127/args00127.opts args00127
      VM option '+PrintInterpreter'
      VM option '+PrintBytecodeHistogram'
      VM option '+PrintBytecodePairHistogram'
      VM option '+PrintBCIHistogram'
      VM option '+PrintSignatureHandlers'
      VM option '+VerifyOops'
      VM option '+VerifyFPU'
      VM option '+VerifyThread'
      VM option '+VerifyActivationFrameSize'
      VM option '+VerifyReceiver'
      VM option '+VerifyCounterOverflow'
      HotSpot VM warning: Disabling ClassUnloading in order to print bci histogram
      #
      # HotSpot Virtual Machine Error, assertion failure
      #
      # assert(nbits == 32 || -(1 << nbits-1) <= x && x < ( 1 << nbits-1), "value out of range")
      # Error ID: /net/mizu/usr/re/hotsparc1.0.1/src/solaris_only/hotsparc_beta_jvmg/build/solaris/../../src/cpu/sparc/vm/assembler_sparc.hpp, 954 [ Unknown ]
      #
      Dumping core....
      Abort (core dumped)
      novo63%

      SOURCES:
      ========

      #--------------------- args00127.opts:
      +PrintInterpreter
      +PrintBytecodeHistogram
      +PrintBytecodePairHistogram
      +PrintSignatureHandlers
      +VerifyOops
      +VerifyFPU
      +VerifyThread
      +VerifyActivationFrameSize
      +VerifyReceiver
      +VerifyCounterOverflow



      //--------------------- args00127.java:
      //args00127.java
      /* This test simply creates a series of circularly
       * linked memeory objects which should be able to be
       * GC'd
       */


      class MemoryObject
      {
          byte array[];
          MemoryObject next;
          MemoryObject previous;

          public MemoryObject(int size)
          {
              array = new byte[size];
          }
      }

      class args00127
      {
          static final int ARRAY_SIZE = 100;
          static final int OBJECT_SIZE = 10;
          static final int LOOP_COUNT = 5;
          static final int CIRCULARITY_SIZE = 3;

          static MemoryObject memoryArray[] = new MemoryObject[ARRAY_SIZE];

          public static void main(String args[])
          {
              for (int j = 0; j < LOOP_COUNT; j++)
              {
                  System.out.println(j + ": " + Runtime.getRuntime().freeMemory());
                  for (int i = 0; i < ARRAY_SIZE; i ++)
                  {
                      memoryArray[i] = new MemoryObject(OBJECT_SIZE);
                      makeCircular(memoryArray[i], CIRCULARITY_SIZE);
                  }
              }

              // if there's any memory left, let's assume it's okay
              System.out.println("Test passed.");

          }

          public static void makeCircular(MemoryObject mObj, int depth)
          {
      MemoryObject tmpObj = mObj;

              for (int i = 0; i < depth; i++)
              {
                  tmpObj.next = new MemoryObject(OBJECT_SIZE);
                  tmpObj= tmpObj.next;
              }
      tmpObj.next = mObj;
          }

          public static void confirmCircular(MemoryObject mObj)
          {
      int count = 0;
      MemoryObject mObj2 = mObj;
      while (mObj2.next != mObj)
      {
      count++;
      mObj2 = mObj2.next;
      }
      System.out.println("Circularity level: " + count);
          }
      }
      //---------------------

      ======================================================================
      timothy.cramer@central 2000-02-09

            tcramersunw Timothy Cramer (Inactive)
            zsssunw Zss Zss (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: