JDK-6350066 : Nightly testing and PRT/GCBasher got assert(end >= start,"incorrect constructor arguments")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 5.0u7,5.0u8,6
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic,linux,solaris_9
  • CPU: generic,x86,sparc
  • Submitted: 2005-11-14
  • Updated: 2012-02-02
  • Resolved: 2006-02-09
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other JDK 6
5.0u10Fixed 6 b71Fixed
Related Reports
Duplicate :  
Duplicate :  
Description
The next tests failed during Nightly testing on solaris-x86 and solaris-amd64
(see bellow grep results of hs_err* files):

gc/gctests/WeakReference/weak004
gc/memory/Array/ArrayJuggle/Juggle1_gc
gc/memory/Array/ArrayJuggle/Juggle2_gc

I was not able to reproduce it during manual run and
also they are not reproduced during Nigtly rerun. This is why it is P4.
See Comments how to run.

vm-v20z-10% pwd
/net/vmsqe/export/nightly/mantis/DTWS/results/11-11-05/ServerVM/64BITSOLARIS-AMD64/comp/C2_Baseline/vm.gc-NIGHTLY-C2_Baseline-ServerVM-comp-64BITSOLARIS-AMD64-2005-11-11-21-07-53

vm-v20z-10% hs_err hs_err_pid11099.log
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (/net/prt-solamd64-q1-4/PrtBuildDir/workspace/src/share/vm/memory/memRegion.hpp, 28), pid=11099, tid=5
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20051111102220.azeem.6335285-debug compiled mode)
#
# Error: assert(end >= start,"incorrect constructor arguments")
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x00000000005cb400):  VMThread [id=5]

Stack: [0xfffffd7fb5682000,0xfffffd7fb5782000),  sp=0xfffffd7fb5781460,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x115ed06] void VMError::report_and_die() + 0x606
V  [libjvm.so+0x629b71] void report_assertion_failure(const char*,int,const char*) + 0x61
V  [libjvm.so+0xecb686] void PSYoungGen::resize_spaces(unsigned long,unsigned long) + 0x8d6
V  [libjvm.so+0xeca97f] void PSYoungGen::resize(unsigned long,unsigned long) + 0x3f
V  [libjvm.so+0xe1a920] void ParallelScavengeHeap::resize_young_gen(unsigned long,unsigned long) + 0x60
V  [libjvm.so+0xec542e] bool PSScavenge::invoke_no_policy(bool*) + 0x13be
V  [libjvm.so+0xec3d5c] void PSScavenge::invoke(bool*) + 0x10c
V  [libjvm.so+0xe19186] HeapWord*ParallelScavengeHeap::failed_mem_allocate(bool*,unsigned long,bool) + 0x1c6
V  [libjvm.so+0x11612af] void VM_ParallelGCFailedAllocation::doit() + 0xff
V  [libjvm.so+0x1186aa2] void VM_Operation::evaluate() + 0x102
V  [libjvm.so+0x1185a51] void VMThread::loop() + 0x771
V  [libjvm.so+0x1184d4c] void VMThread::run() + 0x9c
V  [libjvm.so+0xded75e] java_start + 0x22e
C  [libc.so.1+0xcaa1b]  _thr_slot_offset+0x31b _thr_setup + 0x5b
C  [libc.so.1+0xcac50]  _thr_slot_offset+0x550 _lwp_start + 0x0

VM_Operation (0xfffffd7ffd4a8d68): parallel gc failed allocation, mode: safepoint, requested by thread 0x0000000000457700


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x00000000006e7500 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=11]
  0x0000000000603000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=10]
  0x0000000000601500 JavaThread "CompilerThread0" daemon [_thread_blocked, id=9]

  0x00000000005ffb00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8]
  0x00000000005d2600 JavaThread "Finalizer" daemon [_thread_blocked, id=7]
  0x00000000005d1900 JavaThread "Reference Handler" daemon [_thread_blocked, id=6]
  0x0000000000457700 JavaThread "main" [_thread_blocked, id=2]

Other Threads:
=>0x00000000005cb400 VMThread [id=5]
  0x000000000072ac00 WatcherThread [id=12]

VM state:at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x0000000000453f18/0x0000000000453fc8] Threads_lock - owner thread: 0x00000000005cb400
[0x0000000000454b18/0x0000000000454ba8] Heap_lock - owner thread: 0x0000000000457700

Heap
 PSYoungGen      total 60672K, used 2816K [0xfffffd7fe5000000, 0xfffffd7ff3a00000, 0xfffffd7ffa000000)
  eden space 57856K, 0% used [0xfffffd7fe5000000,0xfffffd7fe5000000,0xfffffd7fe8880000)
  from space 2816K, 100% used [0xfffffd7fe8b40000,0xfffffd7fe8e00000,0xfffffd7fe8e00000)
  to   space 2816K, 0% used [0xfffffd7fe8880000,0xfffffd7fe8880000,0xfffffd7fe8b40000)
 PSOldGen        total 292864K, used 273463K [0xfffffd7fbb000000, 0xfffffd7fcce00000, 0xfffffd7fe5000000)
  object space 292864K, 93% used [0xfffffd7fbb000000,0xfffffd7fcbb0dc48,0xfffffd7fcce00000)
 PSPermGen       total 22528K, used 2581K [0xfffffd7fb5e00000, 0xfffffd7fb7400000, 0xfffffd7fbb000000)
  object space 22528K, 11% used [0xfffffd7fb5e00000,0xfffffd7fb60855f8,0xfffffd7fb7400000)

Dynamic libraries:
0x0000000000400000      /net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/solaris-amd64/bin/amd64/java
0xfffffd7fff580000      /lib/64/libthread.so.1
0xfffffd7fff590000      /lib/64/libdl.so.1
0xfffffd7fff470000      /lib/64/libc.so.1
0xfffffd7ffd600000      /net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/lib/amd64/server/libjvm.so
0xfffffd7fff420000      /lib/64/libsocket.so.1
0xfffffd7fff450000      /usr/lib/64/libsched.so.1
0xfffffd7fff3d0000      /usr/lib/64/libCrun.so.1
0xfffffd7fff350000      /lib/64/libm.so.2
0xfffffd7fff330000      /lib/64/libdoor.so.1
0xfffffd7ffd530000      /lib/64/libnsl.so.1
0xfffffd7fff2e0000      /lib/64/libscf.so.1
0xfffffd7fff2c0000      /lib/64/libuutil.so.1
0xfffffd7ffd510000      /lib/64/libmd5.so.1
0xfffffd7ffd4f0000      /lib/64/libmp.so.2
0xfffffd7ffd360000      /net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/lib/amd64/native_threads/libhpi.so
0xfffffd7ffd310000      /net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/lib/amd64/libverify.so
0xfffffd7ffd2b0000      /net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/lib/amd64/libjava.so
0xfffffd7ffd270000      /net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/lib/amd64/libzip.so

VM Arguments:
jvm_args: -Xcomp -DHANGINGJAVA1397 -XX:-PrintVMOptions -XX:CompileThreshold=100
java_command: gc.gctests.WeakReference.weak004.weak004
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=/var/tmp/Work/Work/exec/vm.gc-NIGHTLY-C2_Baseline-ServerVM-comp-64BITS
OLARIS-AMD64-2005-11-11-21-07-53/fhsu.Solaris.x86/weak004:/net/vmsqe.sfbay/expor
t/backup/testbase/testbase_vm.1.6_r02/vm/bin/classes:/net/vmsqe.sfbay/export/nig
htly/mantis/JDK/c2_baseline/jdk1.6/solaris-amd64/lib/tools.jar
PATH=/net/vmsqe.sfbay/export/nightly/mantis/JDK/c2_baseline/jdk1.6/solaris-amd64
/bin:/bin:/usr/bin:/net/vmsqe.sfbay/export/nightly/mantis/JDK/c2_baseline/jdk1.6
/solaris-amd64/jre/bin
LD_LIBRARY_PATH=/net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_baseline/jdk1.6/so
laris-amd64/jre/lib/amd64/server:/net/vmsqe.sfbay/export/weekly/mustang/JDK/c2_b
aseline/jdk1.6/solaris-amd64/jre/lib/amd64:/net/vmsqe.sfbay/export/weekly/mustan
g/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/../lib/amd64:/net/vmsqe.sfbay/export/
backup/testbase/testbase_vm.1.6_r02/vm/src/nsk/share/lib/solarisamd64:/net/vmsqe
.sfbay/export/nightly/mantis/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/lib/amd64:
/net/vmsqe.sfbay/export/nightly/mantis/JDK/c2_baseline/jdk1.6/solaris-amd64/jre/
lib/amd64/server:/net/vmsqe.sfbay/export/backup/testbase/testbase_vm.1.6_r02/vm/
src/misc/gc/utils/lib/solarisamd64
SHELL=/usr/bin/sh
DISPLAY=vmsqe.sfbay:0.0

Signal Handlers:
SIGSEGV: [libjvm.so+0x115fd80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGBUS: [libjvm.so+0x115fd80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGFPE: [libjvm.so+0xdf5f90], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGPIPE: [libjvm.so+0xdf5f90], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGILL: [libjvm.so+0xdf5f90], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGHUP: [libjvm.so+0xdf0f80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGINT: [libjvm.so+0xdf0f80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGQUIT: [libjvm.so+0xdf0f80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGTERM: [libjvm.so+0xdf0f80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004


---------------  S Y S T E M  ---------------

OS:                        Solaris 10 10/05 s10x_u1wos_11 X86
           Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                             Assembled 20 July 2005

uname:SunOS 5.10 Generic_118844-20 i86pc  (T2 libthread)
rlimit: STACK 8192k, CORE 50k, NOFILE 65536, AS infinity
load average:3.62 3.48 2.62

CPU:total 2 amd64 3dnow

Memory: 4k page, physical 4127784k(215060k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (20051111102220.azeem.6335285) for solaris-amd64, built on Nov 11 2005 15:35:45 by "PRT" with unknown Workshop:0x580
------------------------------------------------------------------------------------------------------------
It failed for some time already:

vm-v20z-10% grep "incorrect constructor arguments" /net/vmsqe/export/nightly/mantis/DTWS/results/*/ServerVM/*/*/*/vm.gc-NIGHTLY-*/hs_err*

/net/vmsqe/export/nightly/mantis/DTWS/results/10-26-05/ServerVM/solx86/mixed/RT_Baseline/vm.gc-NIGHTLY-RT_Baseline-ServerVM-mixed-solx86-2005-10-26-23-52-59/hs_err_pid6413.log:# Error: assert(end >= start,"incorrect constructor arguments")

/net/vmsqe/export/nightly/mantis/DTWS/results/11-10-05/ServerVM/64BITSOLARIS-AMD64/mixed/Gc_Baseline/vm.gc-NIGHTLY-Gc_Baseline-ServerVM-mixed-64BITSOLARIS-AMD64-2005-11-10-20-43-09/hs_err_pid25604.log:# Error: assert(end >= start,"incorrect constructor arguments")

/net/vmsqe/export/nightly/mantis/DTWS/results/11-11-05/ServerVM/64BITSOLARIS-AMD64/comp/C2_Baseline/vm.gc-NIGHTLY-C2_Baseline-ServerVM-comp-64BITSOLARIS-AMD64-2005-11-11-21-07-53/hs_err_pid11099.log:# Error: assert(end >= start,"incorrect constructor arguments")

/net/vmsqe/export/nightly/mantis/DTWS/results/11-13-05/ServerVM/64BITSOLARIS-AMD64/mixed/Gc_Baseline-XXParallel/vm.gc-NIGHTLY-Gc_Baseline-XXParallel-ServerVM-mixed-64BITSOLARIS-AMD64-2005-11-13-21-54-27/hs_err_pid7902.log:# Error: assert(end >= start,"incorrect constructor arguments")

/net/vmsqe/export/nightly/mantis/DTWS/results/11-13-05/ServerVM/solx86/mixed/Gc_Baseline/vm.gc-NIGHTLY-Gc_Baseline-ServerVM-mixed-solx86-2005-11-13-22-45-10/hs_err_pid15867.log:# Error: assert(end >= start,"incorrect constructor arguments")

vm-v20z-10% grep java_command /net/vmsqe/export/nightly/mantis/DTWS/results/10-26-05/ServerVM/solx86/mixed/RT_Baseline/vm.gc-NIGHTLY-RT_Baseline-ServerVM-mixed-solx86-2005-10-26-23-52-59/hs_err_pid6413.log
java_command: gc.memory.Array.ArrayJuggle.Juggle1_gc.Juggle1_gc
vm-v20z-10%
vm-v20z-10% grep java_command /net/vmsqe/export/nightly/mantis/DTWS/results/11-10-05/ServerVM/64BITSOLARIS-AMD64/mixed/Gc_Baseline/vm.gc-NIGHTLY-Gc_Baseline-ServerVM-mixed-64BITSOLARIS-AMD64-2005-11-10-20-43-09/hs_err_pid25604.log
java_command: gc.memory.Array.ArrayJuggle.Juggle1_gc.Juggle1_gc
vm-v20z-10%
vm-v20z-10% grep java_command /net/vmsqe/export/nightly/mantis/DTWS/results/11-11-05/ServerVM/64BITSOLARIS-AMD64/comp/C2_Baseline/vm.gc-NIGHTLY-C2_Baseline-ServerVM-comp-64BITSOLARIS-AMD64-2005-11-11-21-07-53/hs_err_pid11099.log
java_command: gc.gctests.WeakReference.weak004.weak004
vm-v20z-10%
vm-v20z-10% grep java_command /net/vmsqe/export/nightly/mantis/DTWS/results/11-13-05/ServerVM/64BITSOLARIS-AMD64/mixed/Gc_Baseline-XXParallel/vm.gc-NIGHTLY-Gc_Baseline-XXParallel-ServerVM-mixed-64BITSOLARIS-AMD64-2005-11-13-21-54-27/hs_err_pid7902.log
java_command: gc.memory.Array.ArrayJuggle.Juggle2_gc.Juggle2_gc
vm-v20z-10%
vm-v20z-10% grep java_command /net/vmsqe/export/nightly/mantis/DTWS/results/11-13-05/ServerVM/solx86/mixed/Gc_Baseline/vm.gc-NIGHTLY-Gc_Baseline-ServerVM-mixed-solx86-2005-11-13-22-45-10/hs_err_pid15867.log
java_command: gc.memory.Array.ArrayJuggle.Juggle1_gc.Juggle1_gc
vm-v20z-10%

Comments
EVALUATION The problem is in the code that does young generation spaces resizing (PSYoungGen::resize_spaces). For the case when space layout is 'eden', 'to', 'from' and the spaces are to be increased by the large 'requested_survivor_size' the to-space's start was calculated to an invalid value that points beyond of the eden generation. The problem is reproducible on several computers depending on a performance of a computer thus depending on the adaptive sizing policy behavior which decides to increase young generation. I have seen one more instance of the problem for the case when the 'requested_survivor_size' is equal to the 'to_end - eden_start'. In this case the size of the to-space is zero.
09-02-2006