Indy crash

Christian Thalinger christian.thalinger at oracle.com
Thu Jun 16 03:47:28 PDT 2011


On Jun 15, 2011, at 11:18 PM, Tom Rodriguez wrote:
> 
> On Jun 15, 2011, at 11:47 AM, Christian Thalinger wrote:
> 
>> On Jun 15, 2011, at 8:08 PM, Charles Oliver Nutter wrote:
>>> FWIW, I only get the crash on my MLVM build if I pass these flags to JVM:
>>> 
>>> -XX:MaxInlineSize=150 -XX:InlineSmallCode=3000
>>> 
>>> See README and use jruby.jar from this repo to make it easier:
>>> 
>>> https://github.com/headius/indy-crasher
>>> 
>>> I'll try that x64 build in a moment.
>> 
>> Indeed I get a crash on Solaris and Linux using JDK7 b145.  But with a bundle containing the latest two fixes all looks good:
>> 
>> $ /java/re/jdk/7/promoted/all/b145/binaries/solaris-x64/bin/java -showversion -d64 -XX:MaxInlineSize=150 -XX:InlineSmallCode=3000 -Xbootclasspath/a:jruby.jar -Djruby.native.enabled=false org.jruby.Main -X+C --1.9 bench_etl.rb
>> java version "1.7.0-ea"
>> Java(TM) SE Runtime Environment (build 1.7.0-ea-b145)
>> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b15, mixed mode)
>> 
>> #
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> #  SIGSEGV (0xb) at pc=0xfffffd7ffe9bf980, pid=649, tid=2
>> #
>> # JRE version: 7.0-b145
>> # Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0-b15 mixed mode solaris-amd64 compressed oops)
>> # Problematic frame:
>> # V  [libjvm.so+0xdbf980]  int methodOopDesc::validate_bci_from_bcx(long)const+0x24
>> #
>> # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
>> #
>> # An error report file with more information is saved as:
>> # /home/ct232829/mlvm/jruby/indy-crasher/hs_err_pid649.log
>> Phoning home... 
>> Using server: 10.161.186.18, port 4711
>> #
>> # If you would like to submit a bug report, please visit:
>> #   http://bugreport.sun.com/bugreport/crash.jsp
>> #
>> Abort
>> 
>> $ java -showversion -d64 -XX:MaxInlineSize=150 -XX:InlineSmallCode=3000 -Xbootclasspath/a:jruby.jar -Djruby.native.enabled=false org.jruby.Main -X+C --1.9 bench_etl.rb
>> java version "1.7.0-ea"
>> Java(TM) SE Runtime Environment (build 1.7.0-ea-b145)
>> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b14-internal-201106142151.never.7052219, mixed mode)
> 
> How are you injecting the latest meth.jar here?  I don't see it in the command line.  If I run the 7052219 jvm with b145 then it does pass but if I add in meth.jar then I see a crash with WrongMethodTypeException.

I forgot to add it.  Using John's latest meth.jar results in the expected crash.  Applying your fix throws the WMTE, in this case (bench_etl.rb):

MethodHandle.java:-1:in `invokeExact': java.lang.invoke.WrongMethodTypeException: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z cannot be called as (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z

-- Christian

>  I think there are still some bugs with throwing these and maybe the very latest JDK changes are throwing it in cases where we wouldn't before.  I just reproduced a similar crash when running the very latest JCK tests that I'm investigating as well.
> 
> The stack trace at the failing point in the jruby case is this:
> 
> 1 - frame( sp=0xfc64e0c8, unextended_sp=0xfc64e0d0, fp=0xfc64e0d0, pc=0xf978d5cc)
> java.lang.invoke.MethodHandle.invokeExact
> 2 - frame( sp=0xfc64e0c8, unextended_sp=0xfc64e0d0, fp=0xfc64e0d0, pc=0xf978d5cc)
> never.tmp.indy_minus_crasher.date.format.method__4$RUBY$method_missing(/never/tmp/indy-crasher/date/format.rb:121)
> 3 - frame( sp=0xfc64e0c8, unextended_sp=0xfc64e0d0, fp=0xfc64e0d0, pc=0xf978d5cc)
> never$tmp$indy_minus_crasher$date$format$method__4$RUBY$method_missing.call(never$tmp$indy_minus_crasher$date$format$method__4$RUBY$method_missing:65\
> 535)
> 4 - frame( sp=0xfc64e0c8, unextended_sp=0xfc64e0d0, fp=0xfc64e0d0, pc=0xf978d5cc)
> org.jruby.javasupport.util.RuntimeHelpers$MethodMissingMethod.call(RuntimeHelpers.java:497)
> 5 - frame( sp=0xfc64e160, unextended_sp=0xfc64e160, fp=0xfc64e1bc, pc=0xf9403133)
> org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:213)
> 6 - frame( sp=0xfc64e1c4, unextended_sp=0xfc64e1c4, fp=0xfc64e200, pc=0xf9403133)
> org.jruby.runtime.invokedynamic.InvokeDynamicSupport.callMethodMissing(InvokeDynamicSupport.java:1820)
> 7 - frame( sp=0xfc64e208, unextended_sp=0xfc64e208, fp=0xfc64e240, pc=0xf9403133)
> org.jruby.runtime.invokedynamic.InvokeDynamicSupport.invocationFallback(InvokeDynamicSupport.java:455)
> 8 - frame( sp=0xfc64e248, unextended_sp=0xfc64e258, fp=0xfc64e28c, pc=0xf94036b1)
> never.tmp.indy_minus_crasher.date.format.method__40$RUBY$_parse(/never/tmp/indy-crasher/date/format.rb:1035)
> 
> And the exception message would have been "WrongMethodTypeException: (Z)Ljava/lang/invoke/MethodHandle; cannot be called as (Z)Ljava/lang/Object;"
> 
> It looks like it's part of some selectAlternative code.  I don't know if there's enough there for you to understand what it's complaining about.
> 
> The underlying problem is that we're aren't throwing the WMT correctly when the caller is compiled and bad things occur as a result.
> 
> tom
> 
>> 
>> Transform time : 101
>> 
>> Can you confirm that?
>> 
>> -- Christian
>> 
>>> 
>>> On Wed, Jun 15, 2011 at 7:38 AM, Christian Thalinger
>>> <christian.thalinger at oracle.com> wrote:
>>>> On Jun 15, 2011, at 6:09 AM, Charles Oliver Nutter wrote:
>>>>> Still crashing! See previous email for hs dumpfile, command-line, and
>>>>> script, with link to data in the script.
>>>> 
>>>> I can not reproduce this crash on either Linux nor Solaris.  Here is a recent Linux x64 product build:
>>>> 
>>>> http://cr.openjdk.java.net/~twisti/linux_x64_2.6-product.zip
>>>> 
>>>> Could you please try that one?
>>>> 
>>>> -- Christian
>>>> 
>>>>> 
>>>>> - Charlie
>>>>> 
>>>>> On Tue, Jun 14, 2011 at 10:46 PM, Charles Oliver Nutter
>>>>> <headius at headius.com> wrote:
>>>>>> On Tue, Jun 14, 2011 at 10:14 PM, John Rose <john.r.rose at oracle.com> wrote:
>>>>>>> This looks like a failure fixed very recently (6/12) by the final version of meth-exc-7047697.patch.
>>>>>>> 
>>>>>>> Please let me know ASAP if the latest version of that patch *fails* to fix your crash!
>>>>>> 
>>>>>> Doing an updated build from MLVM, where 'hotspot' tip shows:
>>>>>> 
>>>>>> ~/projects/mlvm/patches/hotspot ➔ hg log | head -5
>>>>>> changeset:   353:c04ab8f822b1
>>>>>> tag:         tip
>>>>>> user:        jrose
>>>>>> date:        Tue Jun 14 18:34:58 2011 -0700
>>>>>> summary:     meth: update to hotspot-comp
>>>>>> 
>>>>>> Will report back shortly.
>>>>>> 
>>>>>> - Charlie
>>>>>> 
>>>>> _______________________________________________
>>>>> mlvm-dev mailing list
>>>>> mlvm-dev at openjdk.java.net
>>>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>>> 
>>>> 
>>>> _______________________________________________
>>>> mlvm-dev mailing list
>>>> mlvm-dev at openjdk.java.net
>>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>>> 
>>> _______________________________________________
>>> mlvm-dev mailing list
>>> mlvm-dev at openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>> 
>> 
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> 
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev




More information about the mlvm-dev mailing list