United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6820066 ParallelGC: hang on product and crash on fastdebug on SPECjbb2005 with -XX:ParGCArrayScanChunk=0
JDK-6820066 : ParallelGC: hang on product and crash on fastdebug on SPECjbb2005 with -XX:ParGCArrayScanChunk=0

Details
Type:
Bug
Submit Date:
2009-03-20
Status:
Closed
Updated Date:
2011-04-25
Project Name:
JDK
Resolved Date:
2011-04-25
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P5
Resolution:
Fixed
Affected Versions:
hs11
Fixed Versions:
hs21 (b05)

Related Reports
Backport:

Sub Tasks

Description
UseParallelGC run with -XX:ParGCArrayScanChunk=0 leads to hang with product bits and
following assertion when running with fastdebug bits:

#  Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp:537), pid=13863, tid=3011853200
#  Error: assert(start < end,"invariant")
#
# JRE version: 7.0-b51
# Java VM: Java HotSpot(TM) Server VM (15.0-b03-fastdebug mixed mode linux-x86 )
# 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 (0x09d40400):  GCTaskThread [stack: 0xb37d3000,0xb3854000] [id=13865]

Stack: [0xb37d3000,0xb3854000],  sp=0xb3852c70,  free space=1fff79f2c96k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xad49c8];;  VMError::report_and_die()+0x2f8
V  [libjvm.so+0x499115];;  report_assertion_failure(char const*, int, char const*)+0x65
V  [libjvm.so+0x975483];;  void PSPromotionManager::process_array_chunk_work<oopDesc*>(oopDesc*, int, int)+0xb3
V  [libjvm.so+0x974b1c];;  PSPromotionManager::process_array_chunk(oopDesc*)+0xfc
V  [libjvm.so+0x975191];;  PSPromotionManager::process_popped_location_depth(StarTask)+0x31
V  [libjvm.so+0x97374d];;  PSPromotionManager::drain_stacks_depth(bool)+0x10d
V  [libjvm.so+0x367f48];;  CardTableExtension::scavenge_contents(ObjectStartArray*, MutableSpace*, HeapWord*, PSPromotionManager*)+0x338
V  [libjvm.so+0x979228];;  SerialOldToYoungRootsTask::do_it(GCTaskManager*, unsigned int)+0xb8
V  [libjvm.so+0x555a7f];;  GCTaskThread::run()+0x1ff
V  [libjvm.so+0x8eaee2];;  java_start(Thread*)+0x152
C  [libpthread.so.0+0x545b]

                                    

Comments
WORK AROUND

Patient: "Doctor it hurts when I do this."
Doctor: "Don't do it."
                                     
2009-03-20
EVALUATION

I'd normally be inclined to close this as "will not fix" / pilot error
because you can't expect to set arbitrary maningless values to obscure
options and expect the JVM to run. In an ideal world we would
screen the type of each option and make sure it is the right type
(in this case a positive number).

However, I'll just downgrade this to a P5 for now. I'll probably
end up converting this to an RFE that will  automagically check types/ranges
of all numeric jvm options via appropriate macroization in the
globals.hpp spec (for example).
                                     
2009-03-20
EVALUATION

In the debug build the assertion failure can be
relaxed.

  assert(start < end, "invariant");

goes to

  assert(start <= end, "invariant");

In that case the following loop will not be executed.
                                     
2009-03-20
EVALUATION

In the product build the processing in PSPromotionManager::process_array_chunk()
fails to make progress.
                                     
2009-03-20
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/1fb790245268
                                     
2011-03-16
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/1fb790245268
                                     
2011-03-21
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/1fb790245268
                                     
2011-03-25



Hardware and Software, Engineered to Work Together