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