JDK-6987634 : JSR 292 assert(start_bci() >= 0 && start_bci() < code_size()) failed: correct osr_bci argument
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs20
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2010-09-27
  • Updated: 2011-04-20
  • Resolved: 2010-10-21
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 6 JDK 7 Other
6u25Fixed 7Fixed hs20Fixed
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
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/8aa5fd5d2046
09-10-2010

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

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.
28-09-2010

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