JDK-7047300 : VM crashes with assert(_base == InstPtr) failed: Not an object pointer
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs21,7
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-05-23
  • Updated: 2012-03-22
  • Resolved: 2011-06-09
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 7 JDK 8 Other
7Fixed 8Fixed hs21Fixed
Related Reports
Duplicate :  
Relates :  
Description
VM crashes during compilation of 
method sun.font.FontDesignMetrics::getMetrics

Crash is easily reproduced.

Here is stack
;; Using jvm: "/export/local/common/jdk/baseline/linux-amd64/jre/lib/amd64/server/libjvm.so"
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/P1/B/122931.et151817/source/src/share/vm/opto/type.hpp:1150), pid=3958, tid=1105512768
#  assert(_base == InstPtr) failed: Not an object pointer
#
# JRE version: 7.0-b142
# Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0-b14-internal-201105201229.et151817.hs21-b14-snapshot-fastdebug mixed mode linux-amd64 compressed oops)
# Core dump written. Default location: /export/local/50717.HSX.PIT.VM+linux-amd64_bigapps__server_mixed_runThese/results/runThese/core or core.3958
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x000000000dbc5000):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=3978, stack(0x0000000041d4c000,0x0000000041e4d000)]

Stack: [0x0000000041d4c000,0x0000000041e4d000],  sp=0x0000000041e48360,  free space=1008k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xbfe452]  VMError::report_and_die()+0x2f2;;  VMError::report_and_die()+0x2f2
V  [libjvm.so+0x5be114]  report_vm_error(char const*, int, char const*, char const*)+0x84;;  report_vm_error(char const*, int, char const*, char const*)+0x84
V  [libjvm.so+0xa1cf15]  Compile::Process_OopMap_Node(MachNode*, int)+0xb05;;  Compile::Process_OopMap_Node(MachNode*, int)+0xb05
V  [libjvm.so+0xa1e3f0]  Compile::Fill_buffer()+0xbc0;;  Compile::Fill_buffer()+0xbc0
V  [libjvm.so+0x543f03]  Compile::Code_Gen()+0x633;;  Compile::Code_Gen()+0x633
V  [libjvm.so+0x54657a]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0x10fa;;  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0x10fa
V  [libjvm.so+0x455db0]  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x1d0;;  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x1d0
V  [libjvm.so+0x54f916]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x4b6;;  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x4b6
V  [libjvm.so+0x5504f4]  CompileBroker::compiler_thread_loop()+0x4f4;;  CompileBroker::compiler_thread_loop()+0x4f4
V  [libjvm.so+0xba4c86]  JavaThread::thread_main_inner()+0xf6;;  JavaThread::thread_main_inner()+0xf6
V  [libjvm.so+0xa0c470]  java_start(Thread*)+0x100;;  _ZL10java_startP6Thread+0x100


Current CompileTask:
C2: 314728 1004   !         sun.font.FontDesignMetrics::getMetrics (266 bytes)

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/7523488edce5
09-06-2011

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/7523488edce5
03-06-2011

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/7523488edce5
28-05-2011

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/7523488edce5
24-05-2011

SUGGESTED FIX src/share/vm/opto/output.cpp Mon May 23 20:18:07 2011 -0700 @@ -911,7 +911,7 @@ } } else { const TypePtr *tp = obj_node->bottom_type()->make_ptr(); - scval = new ConstantOopWriteValue(tp->is_instptr()->const_oop()->constant_encoding()); + scval = new ConstantOopWriteValue(tp->is_oopptr()->const_oop()->constant_encoding()); } OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node);
24-05-2011

EVALUATION The code incorrectly used is_instptr() instead of is_oopptr() to get const_oop.
24-05-2011