harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vera Petrashkova (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-1832) [drlvm][jet] VM crashes instead of throwing LinkageError and its subclasses
Date Thu, 12 Oct 2006 04:42:37 GMT
[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


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

        

Mime
View raw message