Mercurial > hg > truffle
view test/runtime/6878713/Test6878713.sh @ 3293:1f4413413144
7039089: G1: changeset for 7037276 broke heap verification, and related cleanups
Summary: In G1 heap verification, we no longer scan perm to G1-collected heap refs as part of process_strong_roots() but rather in a separate explicit oop iteration over the perm gen. This preserves the original perm card-marks. Added a new assertion in younger_refs_iterate() to catch a simple subcase where the user may have forgotten a prior save_marks() call, as happened in the case of G1's attempt to iterate perm to G1 refs when verifying the heap before exit. The assert was deliberately weakened for ParNew+CMS and will be fixed for that combination in a future CR. Also made some (non-G1) cleanups related to code and comments obsoleted by the migration of Symbols to the native heap.
Reviewed-by: iveresov, jmasa, tonyp
author | ysr |
---|---|
date | Tue, 26 Apr 2011 21:17:24 -0700 |
parents | 4a9604cd7c5f |
children | 037973617842 |
line wrap: on
line source
#!/bin/sh ## ## @test ## @bug 6878713 ## @summary Verifier heap corruption, relating to backward jsrs ## @run shell/timeout=120 Test6878713.sh ## if [ "${TESTSRC}" = "" ] then TESTSRC=. fi if [ "${TESTJAVA}" = "" ] then PARENT=`dirname \`which java\`` TESTJAVA=`dirname ${PARENT}` echo "TESTJAVA not set, selecting " ${TESTJAVA} echo "If this is incorrect, try setting the variable manually." fi if [ "${TESTCLASSES}" = "" ] then echo "TESTCLASSES not set. Test cannot execute. Failed." exit 1 fi BIT_FLAG="" # set platform-dependent variables OS=`uname -s` case "$OS" in SunOS | Linux ) NULL=/dev/null PS=":" FS="/" ## for solaris, linux it's HOME FILE_LOCATION=$HOME if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" ] then BIT_FLAG=`cat ${FILE_LOCATION}${FS}JDK64BIT | grep -v '^#'` fi ;; Windows_* ) NULL=NUL PS=";" FS="\\" ;; * ) echo "Unrecognized system!" exit 1; ;; esac JEMMYPATH=${CPAPPEND} CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH THIS_DIR=`pwd` ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -version ${TESTJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} OOMCrashClass1960_2 > test.out 2>&1 if [ -s core -o -s "hs_*.log" ] then cat hs*.log echo "Test Failed" exit 1 else echo "Test Passed" exit 0 fi