JDK-6475811 : iCMS: assert(top < _icms_stop_limit,"Tautology")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 6
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-09-27
  • Updated: 2012-02-01
  • Resolved: 2006-11-14
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.
JDK 6 JDK 7 Other
6u4Fixed 7Fixed hs10Fixed
Related Reports
Relates :  
Relates :  
Description
The following tests failed:
gc/gctests/Compact/compact017  (gc.gctests.Compact.compact017)
gc/gctests/Compact/compact018  (gc.gctests.Compact.compact018)

The assert triggered below was introduced in the recent fix for 6472335.
It does not indicate a correctness issue (see comments), just a very minor
performance issue.

For example:

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (/net/prt-solx86-q1-3/PrtBuildDir/workspace/src/share/vm/memory/concurrentMarkSweepGeneration.cpp, 1169), pid=1196, tid=14
#
# Java VM: Java HotSpot(TM) Client VM (20060922160805.ysr.bot-debug mixed mode)
#
# Error: assert(top < _icms_stop_limit,"Tautology")
# 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 (0x08219000):  JavaThread "Thread-1" [_thread_in_vm, id=14]

Stack: [0xf2a34000,0xf2a84000),  sp=0xf2a83138,  free space=316k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x928a6f]
V  [libjvm.so+0x29d61f]
V  [libjvm.so+0x25d4f2]
V  [libjvm.so+0x25d8d0]
V  [libjvm.so+0x6551d]
V  [libjvm.so+0x2ea7b8]
V  [libjvm.so+0x22ebf1]
V  [libjvm.so+0x2ea851]
V  [libjvm.so+0x5de6e]
V  [libjvm.so+0x32d9a5]
V  [libjvm.so+0x316e62]
V  [libjvm.so+0x15b8db]
v  ~RuntimeStub::fast_new_instance Runtime1 stub
J  gc.gctests.Compact.compact017$AuxiliaryThread.run()V
v  ~StubRoutines::call_stub
V  [libjvm.so+0x38138c]
V  [libjvm.so+0x740c6f]
V  [libjvm.so+0x380cc0]
V  [libjvm.so+0x37ffe2]
V  [libjvm.so+0x3801f4]
V  [libjvm.so+0x492a99]
V  [libjvm.so+0x85daaa]
V  [libjvm.so+0x85d854]
V  [libjvm.so+0x73b81f]
C  [libc.so.1+0x9f6f8]
C  [libc.so.1+0x9f9e0]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  ~RuntimeStub::fast_new_instance Runtime1 stub
J  gc.gctests.Compact.compact017$AuxiliaryThread.run()V
v  ~StubRoutines::call_stub

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

Java Threads: ( => current thread )
=>0x08219000 JavaThread "Thread-1" [_thread_in_vm, id=14]
  0x081d8000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=12]
  0x081d6000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=11]
  0x081d4400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=10]
  0x081d3000 JavaThread "Surrogate Locker Thread (CMS)" daemon [_thread_blocked, id=9]
  0x081ba400 JavaThread "Finalizer" daemon [_thread_blocked, id=8]
  0x081b5800 JavaThread "Reference Handler" daemon [_thread_blocked, id=7]
  0x08088400 JavaThread "main" [_thread_blocked, id=2]

Other Threads:
  0x081a9000 VMThread [id=6]
  0x081da400 WatcherThread [id=13]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x08087338/0x08087398] Heap_lock - owner thread: 0x08219000

Heap
 par new generation   total 14784K, used 14783K [0xf3600000, 0xf4600000, 0xf4600000)
  eden space 13184K,  99% used [0xf3600000, 0xf42dfff8, 0xf42e0000)
  from space 1600K, 100% used [0xf42e0000, 0xf4470000, 0xf4470000)
  to   space 1600K,   0% used [0xf4470000, 0xf4470000, 0xf4600000)
 concurrent mark-sweep generation total 49152K, used 49152K [0xf4600000, 0xf7600000, 0xf7600000)
 concurrent-mark-sweep perm gen total 12288K, used 1682K [0xf7600000, 0xf8200000, 0xfb600000)

Dynamic libraries:
0x08050000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/bin/java
0xfefa0000 	/lib/libthread.so.1
0xfef80000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/bin/../jre/lib/i386/jli/libjli.so
0xfefb0000 	/lib/libdl.so.1
0xfee90000 	/lib/libc.so.1
0xfdc00000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/client/libjvm.so
0xfee50000 	/lib/libsocket.so.1
0xfee70000 	/usr/lib/libsched.so.1
0xfee10000 	/lib/libm.so.1
0xfdbd0000 	/usr/lib/libCrun.so.1
0xfdbb0000 	/lib/libdoor.so.1
0xfdb10000 	/lib/libnsl.so.1
0xfdab0000 	/lib/libm.so.2
0xfda80000 	/lib/libscf.so.1
0xfda60000 	/lib/libuutil.so.1
0xfda40000 	/lib/libmd5.so.1
0xfda20000 	/lib/libmp.so.2
0xfd940000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/native_threads/libhpi.so
0xfd900000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/libverify.so
0xfd8b0000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/libjava.so
0xfd880000 	/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/libzip.so

VM Arguments:
jvm_args: -Xmixed -DHANGINGJAVA22160 -XX:-PrintVMOptions -Xincgc -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
java_command: gc.gctests.Compact.compact017 -iterations=1 -gcTimeout=5
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=/export/gtee/Work/exec/vm.gc-27-NIGHTLY-Gc_Baseline-Xinc-ClientVM-mixed-solx86-2006-09-27-04-54-18/run2/gridadm.Solaris.x86/compact017:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/classes:/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/lib/tools.jar
PATH=/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/bin:/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/bin:/bin:/usr/bin:/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/bin:/mksnt
LD_LIBRARY_PATH=/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/client:/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386:/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/../lib/i386:/export/gtee/Work/JDK/NIGHTLY/Gc_Baseline-Xinc/solaris-i586/jre/lib/i386/client:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/lib/solaris-i586/nsk/share/gc/lock/jni:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/lib/solaris-i586/nsk/share/gc/lock/malloc:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/lib/solaris-i586/nsk/share/gc/lock/jvmti:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/lib/solaris-i586/nsk/share/gc/lock/jniref
SHELL=/usr/bin/sh
DISPLAY=vmsqe.sfbay:0.0

Signal Handlers:
SIGSEGV: [libjvm.so+0x929660], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGBUS: [libjvm.so+0x929660], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGFPE: [libjvm.so+0x740c78], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGPIPE: [libjvm.so+0x740c78], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c
SIGILL: [libjvm.so+0x740c78], 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+0x73dc80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGINT: [libjvm.so+0x73dc80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGQUIT: [libjvm.so+0x73dc80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGTERM: [libjvm.so+0x73dc80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGQUIT: [libjvm.so+0x73dc80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGTERM: [libjvm.so+0x73dc80], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIG39: [libjvm.so+0x740ca4], sa_mask[0]=0x00000000, sa_flags=0x00000008
SIG40: [libjvm.so+0x740c78], sa_mask[0]=0xffbffeff, sa_flags=0x0000000c


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

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

uname:SunOS 5.10 Generic_Patch_118844-30 i86pc  (T2 libthread)
rlimit: STACK 8192k, CORE 50k, NOFILE 65536, AS infinity
load average:1.10 1.51 1.78

CPU:total 2 family 15, cmov, cx8, fxsr, mmx, sse, sse2, mmxext, 3dnowext, 3dnow

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

vm_info: Java HotSpot(TM) Client VM (20060922160805.ysr.bot) for solaris-x86, built on Sep 22 2006 21:04:19 by "PRT" with unknown Workshop:0x580

Comments
SUGGESTED FIX Event: putback-to Parent workspace: /net/jano.sfbay/export/disk05/hotspot/ws/main/gc_baseline (jano.sfbay:/export/disk05/hotspot/ws/main/gc_baseline) Child workspace: /net/prt-web/prt-workspaces/20060927123159.ysr.bot/workspace (prt-web:/net/prt-web/prt-workspaces/20060927123159.ysr.bot/workspace) User: ysr Comment: --------------------------------------------------------- Job ID: 20060927123159.ysr.bot Original workspace: neeraja:/net/spot/scratch/ysr/bot Submitter: ysr Archived data: /net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2006/20060927123159.ysr.bot/ Webrev: http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2006/20060927123159.ysr.bot/workspace/webrevs/webrev-2006.09.27/index.html Fixed 6475811: iCMS: assert(top < _icms_stop_limit,"Tautology") Webrev: http://analemma.sfbay/net/spot/scratch/ysr/bot/webrev The assert, recently introduced w/the changes for 6472335, was a tad too strong and could have been merely weakened by changing the "<" to "<=". It, however, indicated a slight inefficiency in iCMS strobing in that an essentially empty strobe would apply for sufficiently low values of the duty-cycle. In these cases, we now just elide the unnecessary empty strobe entirely. (See some further commentary in the bug report.) Reviewed by: John Coomes, Andrey Petrusenko (, Igor Veresov) Fix Verified: yes Verification Testing: (the failing nightly tests) gc/gctests/Compact/compact017 gc/gctests/Compact/compact018 Other testing: (in progress) PRT & refworload w/incgc Files: update: src/share/vm/memory/concurrentMarkSweepGeneration.cpp Examined files: 3878 Contents Summary: 1 update 3877 no action (unchanged)
28-09-2006

SUGGESTED FIX *** src/share/vm/memory/concurrentMarkSweepGeneration.cpp- Wed Sep 27 09:20:42 2006 --- src/share/vm/memory/concurrentMarkSweepGeneration.cpp Tue Sep 26 12:32:03 2006 *** 1121,1131 **** if (tmp_stop > _icms_stop_limit && tmp_stop < eden->end()) { _icms_start_limit += adjustment; _icms_stop_limit = tmp_stop; } } ! } else { _icms_start_limit = _icms_stop_limit = eden->end(); } // Install the new start limit. eden->set_soft_end(_icms_start_limit); --- 1121,1132 ---- if (tmp_stop > _icms_stop_limit && tmp_stop < eden->end()) { _icms_start_limit += adjustment; _icms_stop_limit = tmp_stop; } } ! } ! if (duty_cycle == 0 || (_icms_start_limit == _icms_stop_limit)) { _icms_start_limit = _icms_stop_limit = eden->end(); } // Install the new start limit. eden->set_soft_end(_icms_start_limit);
27-09-2006

EVALUATION See comments and suggested fix sections.
27-09-2006

WORK AROUND -XX:SuppressErrorAt:... in non-product; not an issue for product builds.
27-09-2006