United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6987634 JSR 292 assert(start_bci() >= 0 && start_bci() < code_size()) failed: correct osr_bci argument
JDK-6987634 : JSR 292 assert(start_bci() >= 0 && start_bci() < code_size()) failed: correct osr_bci argument

Details
Type:
Bug
Submit Date:
2010-09-27
Status:
Resolved
Updated Date:
2011-04-20
Project Name:
JDK
Resolved Date:
2010-10-21
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs20 (b02)

Related Reports
Backport:
Backport:

Sub Tasks

Description
$ gamma -Xcomp -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore test.java.dyn.MethodHandlesTest
VM option '+UnlockExperimentalVMOptions'
VM option '+EnableMethodHandles'
VM option '+EnableInvokeDynamic'
JUnit version 4.8.1
.IIIIII.# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/ciTypeFlow.cpp:1948
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/twisti/hotspot-comp/hotspot/src/share/vm/ci/ciTypeFlow.cpp:1948), pid=6371, tid=139786819286800
#  assert(start_bci() >= 0 && start_bci() < code_size()) failed: correct osr_bci argument
#
# JRE version: 7.0
# Java VM: OpenJDK 64-Bit Server VM (19.0-b06-internal-jvmg compiled mode linux-amd64 )
# An error report file with more information is saved as:
# /home/twisti/jdk7/jdk7/jdk/hs_err_pid6371.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 139786819286800
Dumping core ...
Aborted

                                    

Comments
SUGGESTED FIX

Move the logic that handles method handle invokes, which generates bytecodes for these methods, before the normal inlining logic.
                                     
2010-09-28
EVALUATION

MethodHandle.invoke* are native methods.  When the inlining logic in Compile::call_generator tries to inline these methods it fails because these methods don't have any bytecode.
                                     
2010-09-28
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/8aa5fd5d2046
                                     
2010-09-29
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/8aa5fd5d2046
                                     
2010-10-09



Hardware and Software, Engineered to Work Together