You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Pavel Afremov (JIRA)" <ji...@apache.org> on 2007/12/28 14:25:43 UTC

[jira] Closed: (HARMONY-5063) [drlvm][jit][encoder] Assertion in encoder.

     [ https://issues.apache.org/jira/browse/HARMONY-5063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavel Afremov closed HARMONY-5063.
----------------------------------


> [drlvm][jit][encoder] Assertion in encoder.
> -------------------------------------------
>
>                 Key: HARMONY-5063
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5063
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Linux x86-64
>            Reporter: Pavel Afremov
>            Assignee: Alexey Varlamov
>         Attachments: H5063.patch
>
>
> Turning on capability flag can_pop_frame on linux x86-64 leads to strange intermittent asserts in code emitter which is called from JET.
> No JVM TI functions called in this case, They have assert(0) in begin. Looks like, that in TI mode can_pop_frame capability requires additional support from the JET and during compilation of this supporting code assertion is happened.
> Changes:
> Index: vm/vmcore/src/jvmti/jvmti_capability.cpp
> ===================================================================
> --- vm/vmcore/src/jvmti/jvmti_capability.cpp	(revision 589494)
> +++ vm/vmcore/src/jvmti/jvmti_capability.cpp	(working copy)
> @@ -79,7 +79,7 @@
>      1, // can_get_owned_monitor_info
>      1, // can_get_current_contended_monitor
>      1, // can_get_monitor_info
> -    0, // can_pop_frame
> +    1, // can_pop_frame
>      0, // can_redefine_classes
>      1, // can_signal_thread
>      1, // can_get_source_file_name
> Output:
> /nfs/ims/proj/drl/mrt2/users/pnafremo/work/H64/drlvm/vm/port/src/encoder/ia32_em64t/enc_base.cpp:742: static const EncoderBase::OpcodeDesc* EncoderBase::lookup(Mnemonic, const EncoderBase::Operands&): Assertion `found' failed.
> SIGABRT in VM code.
> To reproduce assertion run DRLVM  with TI agent. I used following sequence of action:
> 1.	Ran smoke tests using command : buils.sh smoke.test, 
> 2.	Ran jvmti tests using command : buils.sh jvmti.test,
> 3.	Ran Hi smoke test without TI agent 
> $ ./build/lnx_em64t_gcc_debug/deploy/jdk/jre/bin/java -cp ./build/lnx_em64t_gcc_debug/tests/smoke.tests/classes/  Hi
> 4.	Ran Hi smoke test with TI agent 
> $ ./build/lnx_em64t_gcc_debug/deploy/jdk/jre/bin/java -cp ./build/lnx_em64t_gcc_debug/tests/smoke.tests/classes/ -agentpath:./build/lnx_em64t_gcc_debug/tests/jvmti.tests/native/PopFrame1/libPopFrame1.so  Hi

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.