Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6745217
Votes 0
Synopsis jmap throws sun.jvm.hotspot.utilities.AssertionFailure: BitMap index out of bounds (1.5.0_15-b04)
Category java:serviceability
Reported Against b04
Release Fixed 5.0u18-rev(b05)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs
Submit Date 05-SEP-2008
Description
$ jmap -heap:format=b `which java` core.647
Attaching to core core.647 from executable /home/xoladm/_JDK/jdk1.5.0_15/bin/java, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 1.5.0_15-b04
Finding  customer  size using Printezis bits and skipping over...
Exception in thread "main" sun.jvm.hotspot.utilities.AssertionFailure: BitMap index out of bounds
at sun.jvm.hotspot.utilities.Assert.that(Assert.java:15)
at sun.jvm.hotspot.utilities.BitMap.at(BitMap.java:30)
at sun.jvm.hotspot.memory.CMSBitMap.isMarked(CMSBitMap.java:91)
at sun.jvm.hotspot.memory.CMSCollector.blockSizeUsingPrintezisBits(CMSCollector.java:46)
at sun.jvm.hotspot.memory.CompactibleFreeListSpace.getLiveRegions(CompactibleFreeListSpace.java:100)
at sun.jvm.hotspot.oops.ObjectHeap$LiveRegionsCollector.doSpace(ObjectHeap.java:514)
at sun.jvm.hotspot.memory.ConcurrentMarkSweepGeneration.spaceIterate(ConcurrentMarkSweepGeneration.java:49)
at sun.jvm.hotspot.oops.ObjectHeap.addPermGenLiveRegions(ObjectHeap.java:479)
at sun.jvm.hotspot.oops.ObjectHeap.collectLiveRegions(ObjectHeap.java:559)
at sun.jvm.hotspot.oops.ObjectHeap.iterate(ObjectHeap.java:226)
at sun.jvm.hotspot.utilities.AbstractHeapGraphWriter.write(AbstractHeapGraphWriter.java:34)
at sun.jvm.hotspot.utilities.HeapHprofBinWriter.write(HeapHprofBinWriter.java:399)
at sun.jvm.hotspot.tools.JMap.writeHeapHprofBin(JMap.java:133)
at sun.jvm.hotspot.tools.JMap.writeHeapHprofBin(JMap.java:143)
at sun.jvm.hotspot.tools.JMap.run(JMap.java:71)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:204)
at sun.jvm.hotspot.tools.JMap.main(JMap.java:126)

Note: Solaris 10 x86
Posted Date : 2008-09-05 11:28:12.0
Work Around
N/A
Evaluation
Correcting the size of BitMap in CMSBitMap.java fixes this problem.

Change 
 BitMap bitMap = new BitMap((int) (bmWordSize() >> (shifter() + 3) ));

to

 BitMap bitMap = new BitMap((int) (bmWordSize() >> shifter() ));

in agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java
Posted Date : 2008-11-06 06:17:36.0
Comments
  
  Include a link with my name & email   

Submitted On 24-JAN-2009
I got the same on a

java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)

Attaching to process ID 6866, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 10.0-b23
finding class loader instances ..Finding object size using Printezis bits and skipping over...
sun.jvm.hotspot.utilities.AssertionFailure: BitMap index out of bounds
        at sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
        at sun.jvm.hotspot.utilities.BitMap.at(BitMap.java:44)
        at sun.jvm.hotspot.memory.CMSBitMap.isMarked(CMSBitMap.java:108)
        at sun.jvm.hotspot.memory.CMSCollector.blockSizeUsingPrintezisBits(CMSCollector.java:63)
        at sun.jvm.hotspot.memory.CompactibleFreeListSpace.getLiveRegions(CompactibleFreeListSpace.java:116)
        at sun.jvm.hotspot.oops.ObjectHeap$LiveRegionsCollector.doSpace(ObjectHeap.java:534)
        at sun.jvm.hotspot.memory.ConcurrentMarkSweepGeneration.spaceIterate(ConcurrentMarkSweepGeneration.java:66)
        at sun.jvm.hotspot.oops.ObjectHeap.collectLiveRegions(ObjectHeap.java:559)
        at sun.jvm.hotspot.oops.ObjectHeap.iterateSubtypes(ObjectHeap.java:399)
        at sun.jvm.hotspot.oops.ObjectHeap.iterateObjectsOfKlass(ObjectHeap.java:259)
        at sun.jvm.hotspot.oops.ObjectHeap.iterateObjectsOfKlass(ObjectHeap.java:271)
        at sun.jvm.hotspot.tools.PermStat.printClassLoaderStatistics(PermStat.java:121)
        at sun.jvm.hotspot.tools.PermStat.run(PermStat.java:67)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
        at sun.jvm.hotspot.tools.PermStat.main(PermStat.java:46)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.tools.jmap.JMap.runTool(JMap.java:178)
        at sun.tools.jmap.JMap.main(JMap.java:110)
done.
computing per loader stat ..done.
please wait.. computing livenessFinding object size using Printezis bits and skipping over...
liveness analysis may be inaccurate ...




PLEASE NOTE: JDK6 is formerly known as Project Mustang