Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 46852 invoked from network); 12 Apr 2007 12:05:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Apr 2007 12:05:01 -0000 Received: (qmail 73034 invoked by uid 500); 12 Apr 2007 12:05:08 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 72935 invoked by uid 500); 12 Apr 2007 12:05:07 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 72926 invoked by uid 99); 12 Apr 2007 12:05:07 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 Apr 2007 05:05:07 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 Apr 2007 05:05:00 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id D139571407B for ; Thu, 12 Apr 2007 05:04:39 -0700 (PDT) Message-ID: <1278287.1176379479853.JavaMail.jira@brutus> Date: Thu, 12 Apr 2007 05:04:39 -0700 (PDT) From: "Igor V Chebykin (JIRA)" To: commits@harmony.apache.org Subject: [jira] Updated: (HARMONY-1841) [drlvm][jit] Jitrino OPT crashes when returnAddress is on the top of the stack before astore or astore_ instruction MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-1841?page=3Dcom.atlass= ian.jira.plugin.system.issuetabpanels:all-tabpanel ] Igor V Chebykin updated HARMONY-1841: ------------------------------------- Attachment: H1841-fix.patch The fix for H1841 added The patch file is "H1841-fix.patch" Note, that the patch file "H1841.patch" is the regression test > [drlvm][jit] Jitrino OPT crashes when returnAddress is on the top of the = stack before astore or astore_ instruction > -------------------------------------------------------------------------= --------------------------------------------- > > Key: HARMONY-1841 > URL: https://issues.apache.org/jira/browse/HARMONY-1841 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Environment: Linux IA-32, Windows IA-32 > Reporter: Irina Arkhipets > Assigned To: Alexey Varlamov > Attachments: H1841-fix.patch, h1841.patch, test.j > > > J2SE VM Specification reads about astore_ instruction:=20 > ...=20 > The must be a valid index into the local variables of the current fra= me (=C2=A73.6). The objectref on the top of the operand stack must be of ty= pe returnAddress or of type reference. It is popped from the operand stack,= and the value of the local variable at is set to objectref.=20 > ...=20 > However, Jitrino OPT crashes when the value on the top of the stack is re= turnAddress .=20 > The following test example crashes with Jitrino OPT both on Linux IA-32 a= nd Windows IA-32.=20 > Stack trace shows that the problem is in the Jitrino code (more particula= rly, in FlowGraph - please, see sample output below).=20 > --------- test.j ---------=20 > .class public test=20 > .super java/lang/Object=20 > .method public ()V=20 > aload_0=20 > invokespecial java/lang/Object/()V=20 > return=20 > .end method=20 > .method public static main([Ljava/lang/String;)V=20 > .limit stack 10=20 > .limit locals 10=20 > new test=20 > dup=20 > invokespecial test/()V=20 > invokevirtual test/tryme()V=20 > return=20 > .end method=20 > .method public tryme()V=20 > jsr L1=20 > nop=20 > L1:=20 > astore_0=20 > return=20 > .end method=20 > -----------------------------=20 > This test passes with JRockit and interpreter.=20 > This test fails in JET mode with another error diagnostic - please, see H= ARMONY-1840 for more details. > Sample output is:=20 > ...=20 > java: /export/users2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/op= timizer/FlowGraph.cpp:528: bool Jitrino::inlineJSR(Jitrino::IRManager*, Jit= rino::Node*, Jitrino::DefUseBuilder&, Jitrino::JsrEntryInstToRetInstMap&): = Assertion `last->isJSR()' failed. > SIGABRT in VM code. > Stack trace: > 1: ?? (??:-1) > 2: abort (??:-1) > 3: __assert_fail (??:-1) > 4: inlineJSR (/export/users2/iarkhipe/20061012/trunk/working_vm/v= m/jitrino/src/optimizer/FlowGraph.cpp:529) > 5: inlineJSRs (/export/users2/iarkhipe/20061012/trunk/working_vm/= vm/jitrino/src/optimizer/FlowGraph.cpp:658) > 6: Jitrino::FlowGraph::doTranslatorCleanupPhase(Jitrino::IRManage= r&) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/optim= izer/FlowGraph.cpp:833) > 7: Jitrino::TranslatorSession::postTranslatorCleanup() (/export/u= sers2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/translator/Translat= orIntfc.cpp:77) > 8: Jitrino::TranslatorSession::run() (/export/users2/iarkhipe/200= 61012/trunk/working_vm/vm/jitrino/src/translator/TranslatorIntfc.cpp:45) > 9: Jitrino::Inliner::runTranslatorSession(Jitrino::CompilationCon= text&) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/op= timizer/inliner.cpp:853) > 10: Jitrino::Inliner::getNextRegionToInline(Jitrino::CompilationC= ontext&) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/= optimizer/inliner.cpp:938) > 11: Jitrino::InlinePass::_run(Jitrino::IRManager&) (/export/users= 2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/optimizer/inliner.cpp:1= 126) > 12: Jitrino::OptPass::run() (/export/users2/iarkhipe/20061012/tru= nk/working_vm/vm/jitrino/src/optimizer/optpass.cpp:61) > 13: Jitrino::runPipeline(Jitrino::CompilationContext*) (/export/u= sers2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:22= 6) > 14: Jitrino::compileMethod(Jitrino::CompilationContext*) (/export= /users2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:= 261) > 15: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*)= (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/jitrino/src/main/Jit= rino.cpp:286) > 16: JIT_compile_method_with_params (/export/users2/iarkhipe/20061= 012/trunk/working_vm/vm/jitrino/src/vm/drl/DrlJITInterface.cpp:282) > 17: Dll_JIT::compile_method_with_params(void*, Method*, OpenMetho= dExecutionParams) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/vmc= ore/include/dll_jit_intf.h:86) > 18: compile_do_compilation_jit(Method*, JIT*) (/export/users2/iar= khipe/20061012/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:700) > 19: vm_compile_method (/export/users2/iarkhipe/20061012/trunk/wor= king_vm/vm/vmcore/src/class_support/C_Interface.cpp:2538) > 20: DrlEMImpl::compileMethod(Method*) (/export/users2/iarkhipe/20= 061012/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:520) > 21: CompileMethod (/export/users2/iarkhipe/20061012/trunk/working= _vm/vm/em/src/em_intf.cpp:49) > 22: compile_do_compilation (/export/users2/iarkhipe/20061012/trun= k/working_vm/vm/vmcore/src/jit/compile.cpp:780) > 23: compile_jit_a_method(Method*) (/export/users2/iarkhipe/200610= 12/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:828) > 24: IP is 0x410D0172 > 25: vm_invoke_native_array_stub (/export/users2/iarkhipe/20061012= /trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:= 41) > 26: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalu= e*) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/vmcore/src/util/i= a32/base/ini_iA32.cpp:199) > 27: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (/exp= ort/users2/iarkhipe/20061012/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:489) > 28: ExecuteMethod (/export/users2/iarkhipe/20061012/trunk/working= _vm/vm/em/src/em_intf.cpp:43) > 29: vm_execute_java_method_array(_jmethodID*, jvalue*, jvalue*) (= /export/users2/iarkhipe/20061012/trunk/working_vm/vm/vmcore/src/jit/ini.cpp= :58) > 30: call_static_method_no_ref_result (/export/users2/iarkhipe/200= 61012/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:1072) > 31: CallStaticVoidMethodA(JNIEnv_External*, _jobject*, _jmethodID= *, jvalue*) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/vmcore/sr= c/jni/jni_method.cpp:1450) > 32: CallStaticVoidMethodV(JNIEnv_External*, _jobject*, _jmethodID= *, char*) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/vmcore/src/= jni/jni_method.cpp:1437) > 33: CallStaticVoidMethod(JNIEnv_External*, _jobject*, _jmethodID*= , ...) (/export/users2/iarkhipe/20061012/trunk/working_vm/vm/vmcore/src/jni= /jni_method.cpp:1427) > 34: ?? (??:-1) > 35: ?? (??:-1) > 36: ?? (??:-1) > 37: ?? (??:-1) > 38: hysig_protect (??:-1) > 39: ?? (??:-1) > 40: __libc_start_main (??:-1) > 41: ?? (??:-1) > > Aborted > ...=20 > Please, run the "java -jar jasmin.jar test.j" the to compile the test sou= rce file. > Please, run the "java -Xem:opt -Dvm.assert_dialog=3Dfalse test" command t= o reproduce the failure. --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.