United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6458402 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent
JDK-6458402 : 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent

Details
Type:
Bug
Submit Date:
2006-08-09
Status:
Closed
Updated Date:
2012-10-01
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
solaris,generic
Sub-Component:
jvmti
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs12,6,7
Fixed Versions:
hs20 (b07)

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

Sub Tasks

Description
The following NSK tests fail when run with the -XX:+UseConcMarkSweepGC +ExplicitGCInvokesConcurrent options:

        nsk/jvmti/scenarios/allocation/AP03/ap03t001
        nsk/jvmti/scenarios/capability/CM02/cm02t001
        nsk/jvmti/unit/heap/BasicTagTests 

The link to the failure logs is here:
 http://vmsqe.sfbay/nightly/mantis/DTWS/results/08-07-06/ClientVM/solx86/mixed/Gc_Baseline-Xconc/nsk.jvmti-08-NIGHTLY-Gc_Baseline-Xconc-ClientVM-mixed-solx86-2006-08-08-00-32-12/analysis.html#New_Failures

and a sample tlog is:

#!/usr/bin/sh

CLASSPATH=/net/gtee.sfbay/export/nightly/mustang/DTWS/results/08-07-06/ClientVM/solx86/mixed/Gc_Baseline-Xconc/WORK_DIR/nsk.jvmti-08-NIGHTLY-Gc_Baseline-Xconc-ClientVM-mixed-solx86-2006-08-08-00-32-12/run2/gridadm.Solaris.x86/BasicTagTests:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/classes:/net/gtee.sfbay/export/nightly/mustang/JDK/gc_baseline/jdk1.6/solaris-i586/lib/tools.jar
HOME=/var/tmp
RAS_OPTIONS=
LD_LIBRARY_PATH=/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/bin/lib/solaris-i586/nsk/share/jvmti/unit:/net/gtee.sfbay/export/gtee/suites/testbase_vm.1.6/vm/src/nsk/share/lib/solaris-i586:/net/gtee.sfbay/export/nightly/mustang/JDK/gc_baseline/jdk1.6/solaris-i586/jre/lib/i386/client
PATH=/net/gtee.sfbay/export/nightly/mustang/JDK/gc_baseline/jdk1.6/solaris-i586/bin:/net/gtee.sfbay/export/nightly/mustang/JDK/gc_baseline/jdk1.6/solaris-i586/jre/bin:/bin:/usr/bin:/net/gtee.sfbay/export/nightly/mustang/JDK/gc_baseline/jdk1.6/solaris-i586/jre/bin:/mksnt
DISPLAY=vmsqe.sfbay:0.0
SHELL=/usr/bin/sh

while [ $# -gt 0 ];
do
  if [ $1 = "-jdk" ]; then
	shift 1
	PATH=${1}/bin:${PATH}
	shift 1
  else
	if [ $1 = "-d" ]; then
	  shift 1
	  if [ $# -gt 0  ]; then
		DISPLAY=$1
		shift 1
	  else
		DISPLAY=:0.0
	  fi
	fi
  fi
done

export CLASSPATH
export HOME
export RAS_OPTIONS
export LD_LIBRARY_PATH
export PATH
export DISPLAY
export SHELL

#annotate TEST javaopt=-client -Xmixed -XX:-PrintVMOptions -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrent -agentlib:Heap=-waittime=2
/net/gtee.sfbay/export/nightly/mustang/JDK/gc_baseline/jdk1.6/solaris-i586/bin/java -client -Xmixed -DHANGINGJAVA19459 -XX:-PrintVMOptions -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrent -agentlib:Heap=-waittime=2 nsk.jvmti.unit.heap.BasicTagTests
##Exit status of execution step=1
##!checkExitCode

#VM option '-PrintVMOptions'
#VM option '+UseConcMarkSweepGC'
#VM option '+CMSPermGenSweepingEnabled'
#VM option '+CMSClassUnloadingEnabled'
#VM option '+ExplicitGCInvokesConcurrent'

#Exception in thread "main" java.lang.RuntimeException: Test failed - object not tagged
#	at nsk.jvmti.unit.heap.BasicTagTests.run(BasicTagTests.java:51)
#	at nsk.jvmti.unit.heap.BasicTagTests.main(BasicTagTests.java:23)
Also failing 

nsk/jvmti/scenarios/allocation/AP01/ap01t001
nsk/hprof/regression/HeapThrasher   (with G1)

                                    

Comments
SUGGESTED FIX

It appears that VM_GenCollectFullConcurrent::doit is missing the hook for jvmti. The following is a tentative fix:

------- vmGCOperations.cpp -------
*** /tmp/sccs.N1a4Hb    Wed Aug  9 10:02:10 2006
--- vmGCOperations.cpp  Wed Aug  9 10:02:06 2006
***************
*** 121,126 ****
--- 121,127 ----
  // VM operation to invoke a concurrent collection of a
  // GenCollectedHeap heap.
  void VM_GenCollectFullConcurrent::doit() {
+   JvmtiGCFullMarker jgcm;
    assert(Thread::current()->is_VM_thread(), "Should be VM thread");
    
    GenCollectedHeap* gch = GenCollectedHeap::heap();
                                     
2006-08-09
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/7246a374a9f2
                                     
2011-01-11
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/7246a374a9f2
                                     
2011-01-14



Hardware and Software, Engineered to Work Together