PIT testing of 6u5p got failures in nsk tests when runnning with EA and BiasedLocking. Tests passed with EA or BiasedLocking switched off. The test failed when trying exit the monitor after deoptimization of the compiled method with eliminated lock of scalar replaced object. When scalarized object is reallocated the mark word is set to klass->prototype_header() by default. Which can have biased pattern. But the lock should not be biased in order to safely move the displaced mark word from the compiled frame to the vframeArray and back to the interpreted frame. Affected tests: # Internal Error (synchronizer.cpp:1803), pid=XXX, tid=XXX # Error: guarantee(mid->header()->is_neutral(),"invariant") nsk/stress/jck12a/jck12a011 nsk/stress/jck12a/jck12a015 nsk/stress/jck12a/jck12a016 nsk/stress/jck12a/jck12a017 nsk/stress/jck60/jck60011 nsk/stress/jck60/jck60013 nsk/stress/jck60/jck60016 nsk/stress/jck60/jck60017 nsk/stress/jck60/jck60018 nsk/stress/jck60/jck60019 nsk/stress/jck60/jck60021 I see the following tests fail with the same assertion: nsk/monitoring/stress/thread/cmon002 nsk/monitoring/stress/thread/cmon003
|