United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6902036 WorldWind asserts on escape.cpp:1153: assert(addr->is_AddP(),"AddP required")
JDK-6902036 : WorldWind asserts on escape.cpp:1153: assert(addr->is_AddP(),"AddP required")

Details
Type:
Bug
Submit Date:
2009-11-17
Status:
Resolved
Updated Date:
2010-07-29
Project Name:
JDK
Resolved Date:
2010-01-14
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs17
Fixed Versions:
hs17 (b06)

Related Reports
Backport:
Backport:

Sub Tasks

Description
Running worldwind-0.6.277.12749 and moving the mouse inside the window asserts with:

# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/escape.cpp:1153
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/export/home/twisti/hotspot-comp/hotspot/src/share/vm/opto/escape.cpp:1153), pid=18417, tid=9
#  Error: assert(addr->is_AddP(),"AddP required")
#
# JRE version: 7.0-b59
# Java VM: OpenJDK Server VM (17.0-b05-internal-jvmg mixed mode solaris-x86 )
# An error report file with more information is saved as:
# /export/home/twisti/projects/worldwind/worldwind-0.6.277.12749/hs_err_pid18417.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

A product build does not crash.

                                    

Comments
EVALUATION

Just a backtrace and a dump of addr:

(dbx) where
current thread: t@9
  [1] __waitid(0x0, 0x47f9, 0x80b02430, 0x3), at 0xc8563d35 
  [2] waitid(0x0, 0x47f9, 0x80b02430, 0x3), at 0xc85507ad 
  [3] waitpid(0x47f9, 0x80b024d8, 0x0), at 0xc8513305 
=>[4] os::fork_and_exec(cmd = 0xc99b2b48 "dbx - 18424"), line 5956 in "os_solaris.cpp"
  [5] VMError::show_message_box(this = 0x80b02668, buf = 0xc99b2b48 "dbx - 18424", buflen = 2000), line 53 in "vmError_solaris.cpp"
  [6] VMError::report_and_die(this = 0x80b02668), line 700 in "vmError.cpp"
  [7] report_assertion_failure(file_name = 0xc95b536e "/export/home/twisti/hotspot-comp/hotspot/src/share/vm/opto/escape.cpp", line_no = 1153, message = 0xc95b53b4 "assert(addr->is_AddP(),"AddP required")"), line 173 in "debug.cpp"
  [8] ConnectionGraph::split_unique_types(this = 0x8d4ca00, alloc_worklist = CLASS), line 1153 in "escape.cpp"
  [9] ConnectionGraph::compute_escape(this = 0x8d4ca00), line 1623 in "escape.cpp"
  [10] Compile::Compile(this = 0x80b033a0, ci_env = 0x80b03948, compiler = 0x80667b8, target = 0x886d530, osr_bci = -1, subsume_loads = true, do_escape_analysis = true), line 600 in "compile.cpp"
  [11] C2Compiler::compile_method(this = 0x80667b8, env = 0x80b03948, target = 0x886d530, entry_bci = -1), line 112 in "c2compiler.cpp"
  [12] CompileBroker::invoke_compiler_on_method(task = 0x8588bd8), line 1543 in "compileBroker.cpp"
  [13] CompileBroker::compiler_thread_loop(), line 1389 in "compileBroker.cpp"
  [14] compiler_thread_entry(thread = 0x8193800, __the_thread__ = 0x8193800), line 2746 in "thread.cpp"
  [15] JavaThread::thread_main_inner(this = 0x8193800), line 1382 in "thread.cpp"
  [16] JavaThread::run(this = 0x8193800), line 1366 in "thread.cpp"
  [17] java_start(thread_addr = 0x8193800), line 1019 in "os_solaris.cpp"
  [18] _thrp_setup(0xc8043a00), at 0xc855e3c3 
  [19] _lwp_start(0x0, 0x47f9, 0x80b02430, 0x3, 0x7ef909a8, 0xc84b94e0), at 0xc855e650 
(dbx) fr 8
Current function is ConnectionGraph::split_unique_types
 1153         assert(addr->is_AddP(), "AddP required");
(dbx) p addr->dump()
 1461	CastX2P	=== _  1460  [[ 1462 ]]  !jvms: DirectIntBufferU::get @ bci:12 RectangularTessellator::renderTrianglesWithUniqueColors @ bci:312
addr->dump() = (void)
                                     
2009-11-17
WORK AROUND

-XX:-DoEscapeAnalysis
                                     
2009-11-17
EVALUATION

EA should ignore raw memory operations.
                                     
2009-11-18
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/7ef1d2e14917
                                     
2009-11-20
PUBLIC COMMENTS

Problem:
AddPNode::Ideal() may replace AddP node with CastX2P node
for a raw memory reference. EA code does not check such case.

Solution:
Remove the assert.
                                     
2009-11-20



Hardware and Software, Engineered to Work Together