United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6475811 iCMS: assert(top < _icms_stop_limit,"Tautology")
JDK-6475811 : iCMS: assert(top < _icms_stop_limit,"Tautology")

Details
Type:
Bug
Submit Date:
2006-09-27
Status:
Resolved
Updated Date:
2012-02-01
Project Name:
JDK
Resolved Date:
2006-11-14
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
hs10 (b03)

Related Reports
Backport:
Backport:
Relates:
Relates:

Sub Tasks

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
WORK AROUND

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

See comments and suggested fix sections.
                                     
2006-09-27
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);
                                     
2006-09-27
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)
                                     
2006-09-28



Hardware and Software, Engineered to Work Together