JDK-8150804 : C2 Compilation fails with assert(_base >= OopPtr && _base <= AryPtr) failed: Not a Java pointer
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2016-02-29
  • Updated: 2016-03-31
  • Resolved: 2016-03-15
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 9
9 b112Fixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Nightly failure with the following stack trace observed. 

V  [jvm.dll+0x906080]  os::platform_print_native_stack+0x100;;  ?platform_print_native_stack@os@@SA_NPEAVoutputStream@@PEBXPEADH@Z+0x100
V  [jvm.dll+0xab006f]  VMError::report+0xabf;;  ?report@VMError@@CAXPEAVoutputStream@@_N@Z+0xabf
V  [jvm.dll+0xab0f3b]  VMError::report_and_die+0x43b;;  ?report_and_die@VMError@@SAXHPEBD0PEADPEAVThread@@PEAEPEAX40H_K@Z+0x43b
V  [jvm.dll+0xab153d]  VMError::report_and_die+0x5d;;  ?report_and_die@VMError@@SAXPEAVThread@@PEBDH11PEAD@Z+0x5d
V  [jvm.dll+0x4684d8]  report_vm_error+0x78;;  ?report_vm_error@@YAXPEBDH00ZZ+0x78
V  [jvm.dll+0xa6c699]  TimeStamp::milliseconds+0x39;;  ?milliseconds@TimeStamp@@QEBA_JXZ+0x39
V  [jvm.dll+0x429c22]  CompileTask::print_impl+0x32;;  ?print_impl@CompileTask@@CAXPEAVoutputStream@@PEAVMethod@@HH_NH2PEBD22@Z+0x32
V  [jvm.dll+0x42a181]  CompileTask::print_line_on_error+0x81;;  ?print_line_on_error@CompileTask@@QEAAXPEAVoutputStream@@PEADH@Z+0x81
V  [jvm.dll+0xaaff21]  VMError::report+0x971;;  ?report@VMError@@CAXPEAVoutputStream@@_N@Z+0x971
V  [jvm.dll+0xab0f3b]  VMError::report_and_die+0x43b;;  ?report_and_die@VMError@@SAXHPEBD0PEADPEAVThread@@PEAEPEAX40H_K@Z+0x43b
V  [jvm.dll+0xab153d]  VMError::report_and_die+0x5d;;  ?report_and_die@VMError@@SAXPEAVThread@@PEBDH11PEAD@Z+0x5d
V  [jvm.dll+0x4684d8]  report_vm_error+0x78;;  ?report_vm_error@@YAXPEBDH00ZZ+0x78
V  [jvm.dll+0x90e513]  Compile::Process_OopMap_Node+0xa73;;  ?Process_OopMap_Node@Compile@@QEAAXPEAVMachNode@@H@Z+0xa73
V  [jvm.dll+0x91073b]  Compile::fill_buffer+0x10cb;;  ?fill_buffer@Compile@@QEAAXPEAVCodeBuffer@@PEAI@Z+0x10cb
V  [jvm.dll+0x90da6f]  Compile::Output+0x6bf;;  ?Output@Compile@@QEAAXXZ+0x6bf
V  [jvm.dll+0x40ff38]  Compile::Code_Gen+0x318;;  ?Code_Gen@Compile@@AEAAXXZ+0x318
V  [jvm.dll+0x40ea8a]  Compile::Compile+0xf2a;;  ??0Compile@@QEAA@PEAVciEnv@@PEAVC2Compiler@@PEAVciMethod@@H_N33PEAVDirectiveSet@@@Z+0xf2a
V  [jvm.dll+0x32e8a2]  C2Compiler::compile_method+0x112;;  ?compile_method@C2Compiler@@UEAAXPEAVciEnv@@PEAVciMethod@@HPEAVDirectiveSet@@@Z+0x112
V  [jvm.dll+0x424f4b]  CompileBroker::invoke_compiler_on_method+0x6bb;;  ?invoke_compiler_on_method@CompileBroker@@CAXPEAVCompileTask@@@Z+0x6bb
V  [jvm.dll+0x423a2a]  CompileBroker::compiler_thread_loop+0x2ea;;  ?compiler_thread_loop@CompileBroker@@SAXXZ+0x2ea
V  [jvm.dll+0xa659c8]  JavaThread::thread_main_inner+0x1a8;;  ?thread_main_inner@JavaThread@@QEAAXXZ+0x1a8
V  [jvm.dll+0xa647c5]  JavaThread::run+0x1f5;;  ?run@JavaThread@@UEAAXXZ+0x1f5
V  [jvm.dll+0x901936]  java_start+0xe6;;  ?java_start@@YAIPEAVThread@@@Z+0xe6
Comments
I was finally able to write a regression test and verified that this issue was introduced by the fixes for JDK-8139771 and JDK-8146999. The problem is elimination of Phis with a unique input. We may lose NotNull information about a monitor object and therefore replace it with TOP in the uncommon trap branch. We are never able to prove that the path is unreachable and fail in Process_OopMap_Node. Proposed fix: http://cr.openjdk.java.net/~thartmann/8150804/webrev.00/
11-03-2016

I verified that this first shows up with b105. Removed integration_blocker label.
29-02-2016

Able to reproduce on Linux x86_64 with: java -XX:+ReplayCompiles -XX:+ReplayIgnoreInitErrors -XX:ReplayDataFile=replay_pid319968.log
29-02-2016

This could be related to JDK-8149898 and/or JDK-8150135.
29-02-2016