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

one of eight VMs working in parallel crashes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P2 P2
    • None
    • 1.4.0
    • hotspot
    • sparc
    • solaris_2.6

      When several HotSpot Virtual Machines run the same simple class
      simultaneously, sometimes
      one of that machines terminates abnormally. This failure is shown with
      'Segmentation Fault - core dumped' and return code 139.

      This behavior of HotSpot is shown on a machine with the following
      characteristics:
      |
      |$uname -a
      |SunOS sqeel 5.6 Generic_105181-23 sun4u sparc SUNW,Ultra-Enterprise
      |
      |This is a multiprocessor machine with 8 processor units.
      |
      |$java -version
      |java version "1.4.0-beta"
      |Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b46)
      |Java HotSpot(TM) Client VM (build 1.4beta-B45, mixed mode)
      |
      |concurrency factor (number of VMs working simultaneously): 8
      |average executions before the first failure: 500

      First this bug appeared in JCK build (merlin-beta) with 'dmake' and HotSpot
      (build 1.4.0-beta-b46).
      'dmake' ran with concurrency factor equal to 8. Factor 4 gave no failures.

      To reproduce the failure on 'sqeel' use java program (Test.java) and
      a shell script (stress). To run the test:
      1. copy two files into current directory
      2. execute ./stress 8 1000

      ------------------- Test.java
      class Test {
          public static void main(String argv[]) {
              for (int i = 0; i < argv.length; ++i) {
              }
          }
      }

      ------------------- stress
      #!/bin/sh

      #stess test for Hotspot 1.4-beta46
      #
      #usage:
      # stress <concurrency factor> <number of tries for each concurrent
      process>

      echo "$*"

      CONC=${1:-3}
      TRIES=${2:-5}

      javabin=/java/jck-dev/scratch/jdk1.4betab46/solaris/bin

      echo concurrency $CONC
      echo tries $TRIES
      echo $javabin/java
      $javabin/java -version

      $javabin/javac Test.java || exit 1

      while [ $CONC -gt 0 ]; do
          (
              TRY=$TRIES
              while [ $TRY -gt 0 ]; do
      # echo $CONC-$TRY
                  $javabin/java Test $CONC $TRY || echo error $?
                  TRY=`expr $TRY - 1`
              done
          )&
          CONC=`expr $CONC - 1`
      done

      wait
      echo Done
      -----------------------------------

            acorn Karen Kinnear (Inactive)
            reysunw Rey Rey (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: