JDK-8231757 : [ppc] Fix VerifyOops. Errors show since 8231058.
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8,11,13
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • CPU: ppc
  • Submitted: 2019-10-02
  • Updated: 2019-11-14
  • Resolved: 2019-11-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b23Fixed
Related Reports
Relates :  
Relates :  
Description
The flag VerifyOops makes the VM insert code checking for valid oops in many places. Especially, it generates calls to the verify method in generated assembly. VerifyOops is only available in the debug build.

"8231058: VerifyOops crashes with assert(_offset >= 0) failed: offset for non comment?" added a test that enables VerifyOops. This test causes the VM to crash on ppc because the VerifyOops code had not been maintained. It has been broken since the port was first submitted.

The crash is caused by passing compressed oops from 
LIR_Assembler::store() to the checker routine.
This is fixed by implementing a checker routine verify_coop
that first decompresses the coop.  This makes the new
test pass.

Further testing showed that the additional checker
coding makes Patching Stubs overflow. These
can not be increased in size to fit the code. 
JDK-8233081 assures the verify code is not copied to 
the Patching Stub eliminating this problem.

Further the change extends the message printed when verification
of an oop failed. First, it prints the location in the source
code where the checker code was generated. Second, 
it now prints the faulty oop.

Also the message printed when PatchingStubs
overflow is improved.

The change extends the test to run with and without compressed oops.
Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/36fde8064316 User: goetz Date: 2019-11-11 15:27:07 +0000
11-11-2019