United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7048342 CMS: eob == _limit || fc->isFree() failed: Only a free chunk should allow us to cross over the limit
7048342 : CMS: eob == _limit || fc->isFree() failed: Only a free chunk should allow us to cross over the limit

Details
Type:
Bug
Submit Date:
2011-05-25
Status:
Closed
Updated Date:
2011-11-25
Project Name:
JDK
Resolved Date:
2011-09-30
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs22

Related Reports
Backport:
Backport:
Relates:
Relates:
Relates:

Sub Tasks

Description
http://sqeweb.us.oracle.com/nfs/results/vm/gtee/JDK7/NIGHTLY/VM/2011-05-24/GC_Baseline-Xconc/vm/solaris-i586/server/mixed/solaris-i586_vm_server_mixed_vm.parallel_class_loading.testlist/ResultDir/anonymous-simple/hs_err_pid26136.log


http://sqeweb.us.oracle.com/nfs/results/vm/gtee/JDK7/NIGHTLY/VM/2011-05-24/GC_Baseline-Xinc/vm/solaris-sparc/client/mixed/solaris-sparc_vm_client_mixed_vm.parallel_class_loading.testlist/ResultDir/independent/hs_err_pid14821.log

runtime/ParallelClassLoading/std_CLs/SecureClassLoader/forName/dynamic-init/anonymous-simple
runtime/ParallelClassLoading/std_CLs/PrivateMLet/reflect/independent

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/1e3493ac2d11
                                     
2011-07-08
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/1e3493ac2d11
                                     
2011-07-08
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/1e3493ac2d11
                                     
2011-06-08
WORK AROUND

The assert is benign and does not result in any badness in product mode.
To suppress the assert in debug mode, simply use -XX:SuppressErrorAt=...
                                     
2011-05-25
EVALUATION

See Suggested Fix and Comments sections.
                                     
2011-05-25
SUGGESTED FIX

In 

void
CompactibleFreeListSpace::removeChunkFromIndexedFreeList(FreeChunk* fc) {
  assert_locked();
  size_t size = fc->size();
  _bt.verify_single_block((HeapWord*)fc, size);
  NOT_PRODUCT(
    if (FLSVerifyIndexTable) {
      verifyIndexedFreeList(size);
    }
  )
  _indexedFreeList[size].removeChunk(fc);
  debug_only(fc->clearNext());
  debug_only(fc->clearPrev());
  NOT_PRODUCT(
    if (FLSVerifyIndexTable) {
      verifyIndexedFreeList(size);
    }
  )
} 

Remove the lines:

  debug_only(fc->clearNext());
  debug_only(fc->clearPrev());
                                     
2011-05-25



Hardware and Software, Engineered to Work Together