Mercurial > hg > truffle
view test/runtime/6929067/Test6929067.sh @ 1960:878b57474103
6978187: G1: assert(ParallelGCThreads> 1 || n_yielded() == _hrrs->occupied()) strikes again
Summary: An evacuation failure while copying the roots caused an object, A, to be forwarded to itself. During the subsequent RSet updating a reference to A was processed causing the reference to be added to the RSet of A's heap region. As a result of adding to the remembered set we ran into the issue described in 6930581 - the sparse table expanded and the RSet scanning code walked the cards in one instance of RHashTable (_cur) while the occupied() counts the cards in the expanded table (_next).
Reviewed-by: tonyp, iveresov
author | johnc |
---|---|
date | Tue, 16 Nov 2010 14:07:33 -0800 |
parents | 3b3d12e645e7 |
children | f08d439fab8c |
line wrap: on
line source
#!/bin/sh ## ## @test Test6929067.sh ## @bug 6929067 ## @summary Stack guard pages should be removed when thread is detached ## @run shell Test6929067.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 BIT_FLAG="" # set platform-dependent variables OS=`uname -s` case "$OS" in Linux) NULL=/dev/null PS=":" FS="/" ;; SunOS | Windows_* ) NULL=NUL PS=";" FS="\\" echo "Test passed; only valid for Linux" exit 0; ;; * ) echo "Unrecognized system!" exit 1; ;; esac LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/i386/client:/usr/openwin/lib:/usr/dt/lib:/usr/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH THIS_DIR=`pwd` cp ${TESTSRC}${FS}invoke.c ${THIS_DIR} cp ${TESTSRC}${FS}T.java ${THIS_DIR} ${TESTJAVA}${FS}bin${FS}java ${BIT_FLAG} -fullversion ${TESTJAVA}${FS}bin${FS}javac T.java gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/i386/client/libjvm.so ./invoke exit $?