JDK-6745217 : jmap throws sun.jvm.hotspot.utilities.AssertionFailure: BitMap index out of bounds (1.5.0_15-b04)
  • Type: Bug
  • Component: hotspot
  • Sub-Component: svc
  • Affected Version: 5.0u15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2008-09-05
  • Updated: 2012-02-01
  • Resolved: 2009-04-06
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 Other JDK 6 JDK 7 Other
5.0u18-rev,hs16.3Fixed 5.0u19Fixed 6u20-revFixed 7Fixed hs16.3Fixed
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 object 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

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hsx17/baseline/rev/4ec48c301281
22-04-2011

EVALUATION This bug is fixed in 6u22 and 6u23 releases.
10-12-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/9d4dd91c4a0a
19-05-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/9d4dd91c4a0a
17-05-2010

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
06-11-2008