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 Rebriy (JIRA)" <ji...@apache.org> on 2008/02/12 12:47:08 UTC

[jira] Commented: (HARMONY-5322) [drlvm][jvmti] Workaround for absence of lazy resolution should be removed when it is implemented on x86_64

    [ https://issues.apache.org/jira/browse/HARMONY-5322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12568062#action_12568062 ] 

Pavel Rebriy commented on HARMONY-5322:
---------------------------------------

I've tried lazy resolution on Linux x86_64 with class initialization patch mentioned in HARMONY-5453. As a result all DRLVM tests passed with lazy resolution on.
But when I've tried to start an eclipse - it failed:

    [echo]
    [echo]         ==================================
    [echo]         Run Eclipse HelloWorld using Client mode JIT (default)
    [echo]         ==================================
    [echo]
    [java] Signal 11 is reported: SIGSEGV
    [java] Registers:
    [java]     RAX: 0x0000000000923fa0, RBX: 0x00002aaaae81a6a0
    [java]     RCX: 0x00002aaaaafaa620, RDX: 0x00002aaabf138f00
    [java]     RSI: 0x0000000000000000, RDI: 0x00000117eefa88c8
    [java]     RSP: 0x0000000042c11118, RBP: 0x0000000042c11398
    [java]     R8 : 0x00002aaaac638de0, R9 : 0x00002aaaad1996be
    [java]     R10: 0x00002aaaad1996be, R11: 0x00002aaaad850000
    [java]     R12: 0x00002aaaae836428, R13: 0x00002aaaae836148
    [java]     R14: 0x00002aaaae836100, R15: 0x00002aaaadf8c690
    [java]     RIP: 0x00002aaaac638e0f

    [java] Crashed module:
    [java] Unknown memory region 0x00002aaaac634000:0x00002aaaac674000

    [java] Working directory:
    [java] /nfs/ims/proj/drl/mrt2/users/psrebriy/git-master/build/lnx_em64t_gcc_debug/tests/ehwa

    [java] Command line:
    [java] /nfs/ims/proj/drl/mrt2/users/psrebriy/git-master/build/lnx_em64t_gcc_debug/deploy/jdk/jr
/bin/java -XX:-vm.assert_dialog -jar /nfs/ims/proj/drl/mrt2/users/psrebriy/git-master/build/lnx_em6
t_gcc_debug/tests/ehwa/eclipse/startup.jar -application org.eclipse.test.uitestapplication -dev bin
-consolelog -data /nfs/ims/proj/drl/mrt2/users/psrebriy/git-master/build/lnx_em64t_gcc_debug/tests/
hwa/wksp formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter -testPlug
nName HelloAuto -className HelloAuto.CreateAndRunTest
...
     [java] VM attached threads:

     [java] --->[0x42c15940]  'Start Level Event Dispatcher'
     [java]     [0x42a14940]  'Framework Event Dispatcher'
     [java]     [0x42813940]  'State Data Manager'
     [java]     [0x42612940]  'ref handler'
     [java]     [0x42411940]  'finalizer'
     [java]     [0x42210940]  'finalizer'
     [java]     [0x4200f940]  'finalizer'
     [java]     [0x41e0e940]  'finalizer'
     [java]     [0x41c0d940]  'finalizer'
     [java]     [0x41a0c940]  'finalizer'
     [java]     [0x4180b940]  'finalizer'
     [java]     [0x4160a940]  'finalizer'
     [java]     [0x41409940]  'profiler thread'
     [java]     [0x2b0641616e10]  'main'

     [java] Stack trace:
     [java]   0: 0x00002aaaac638e0f: stub 'vm_monitor_exit_naked'
     [java]   1: ?? (??:-1)
     [java] <end of stack trace>
     [java] Java Result: 139

Evaluation shows that there is incorrent "this" object passed as argument to 'vm_monitor_exit_naked() function.

> [drlvm][jvmti] Workaround for absence of lazy resolution should be removed when it is implemented on x86_64
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-5322
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5322
>             Project: Harmony
>          Issue Type: Sub-task
>          Components: DRLVM
>         Environment: All x86_64
>            Reporter: Gregory Shimansky
>            Priority: Minor
>         Attachments: lazy-whole-gen_invoke.patch, lazy.patch, lazy.patch, lazy.patch, StepIntoSelectionClass.java
>
>
> This is a subtask for HARMONY-5305 because this bug is not related to the bug in JIT that makes EUT to go into infinite loop. 
> Test application is attached. Test scenario is the following:
> 1. Set breakpoint on line 22
> 2. Select method step
> 3. Press Ctrl-F5 or select Step Into Selection in context menu
> When this is done debugger should step into method step. But instead it continues program execution until function detach is called which happens at the end of execution of function main. The bug seems to be in JDWP agent because it ignores a single step event for method step. This event is actually reported to it with JVMTI.
> The bug with test testStepIntoSourceMethod seems to happen because on x86_64 JET doesn't have lazy resolution. When invokevirtual for method step is executed, it compiles the method first. This leads to calls for VM.intern and ClassLoader.load class Java calls that are reported by JVMTI to the agent. Only after these several java calls does JVMTI report single step for method step itself. But when this happens this event is not received by eclipse for some reason, single step is turned off and execution continues uninterrupted until the program ends.

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