You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2006/10/12 11:47:36 UTC

[jira] Commented: (HARMONY-1832) [drlvm][jet] VM crashes instead of throwing LinkageError and its subclasses

    [ http://issues.apache.org/jira/browse/HARMONY-1832?page=comments#action_12441680 ] 
            
Mikhail Fursov commented on HARMONY-1832:
-----------------------------------------

Vera,
Have you tried this patch: http://issues.apache.org/jira/browse/HARMONY-1814 ?

> [drlvm][jet] VM crashes instead of throwing LinkageError and its subclasses
> ---------------------------------------------------------------------------
>
>                 Key: HARMONY-1832
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1832
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Attachments: JetLinkageError.zip
>
>
> Harmony VM crashes in JET and Default modes instead of throwing LinkageError and its subclasses.
> For example, when some VM arithmetic instruction uses argument of incompatible type then VM
> crashes when it tries to load the wrong class.
> Code for reproducing:
> -----------JetLinkageErrorTest.java---------------
> public class JetLinkageErrorTest {
>     public static void main (String[] args) {
>         try {
>             new daddVE().testVerify();
>             System.out.println("Test failed: VerifyError should be thrown");
>         } catch (VerifyError e) {
>             System.out.println("Test passed: " + e);
>         } catch (Throwable e) {
>             System.out.println("Test failed: unexpected error");
>             e.printStackTrace();
>         }
>     }
> } 
> ----------------daddVE.jj------------------------
> .class public daddVE
> .super java/lang/Object
> ;
> ; standard initializer
> .method public <init>()V
>    aload_0
>    invokespecial java/lang/Object/<init>()V
>    return
> .end method
> ;
> ; test method
> .method public testVerify()I
>    .limit stack 4
>    .limit locals 2
>    lconst_1
>    dconst_1
>    dadd ; must throw VerifyError
>    pop2
>    sipush 105
>    ireturn
> .end method
> -----------------------------
> 1) It is needed jasmin.jar for creating daddVE class (there are both classes in attachment)
>     java -cp jasmin.jar daddVE.jj
> 2) Run test in JET and Default modes
>     java -Xem:opt JetLinkageErrorTest
>     java  JetLinkageErrorTest
> Output on RI:
> ----------------------
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)
> Test passed: java.lang.VerifyError: (class: daddVE, method: testVerify signature: ()I) Expecting to find double on stack
> Output on Harmony:
> ----------------------
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its l
> icensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r454551, (Oct 11 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> ...VM Crashed!
> Windows reported exception: ACCESS_VIOLATION
> Registers:
>     EAX: 0x00000000, EBX: 0x00000000, ECX: 0x0013dd7c, EDX=0x004284f4
>     ESI: 0x000000bb, EDI: 0x0270f848, ESP: 0x0013dc98, EBP=0x0013f204
>     EIP: 0x00511d64
> Stack trace:
>         1: class_get_name (??:-1)
> <end of stack trace>
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0" 
> pre-alpha : not complete or compatible
> svn = r454551, (Oct 11 2006), Linux/ia32/icc 900, release build
> http://incubator.apache.org/harmony
> SIGSEGV in VM code.
> Stack trace:
>         1: class_get_name (??:-1)
>         2: Jitrino::Jet::Compiler::handle_inst() (??:-1)
> <end of stack trace>
> Segmentation fault
> This bug is not reproducible on interpreter and in OPT mode.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira