You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2006/11/07 19:02:52 UTC

[jira] Commented: (HARMONY-2010) [drlvm] Infinite recursion in vectored exception handler in debug VM in hardware exception with direction flag set

    [ http://issues.apache.org/jira/browse/HARMONY-2010?page=comments#action_12447872 ] 
            
Gregory Shimansky commented on HARMONY-2010:
--------------------------------------------

With this patch a kernel test java.lang.RuntimeTest2 now fails with the following message on WinXP:

     [echo] RUNNING : java.lang.RuntimeTest2
    [junit] Uncaught exception in Thread-shutdown:
    [junit] java.lang.InternalError: Thread Manager internal error 720006
    [junit]     at java.lang.Object.notifyAll(Unknown Source)
    [junit]     at java.lang.FinalizerThread.wakeupFinalization(Unknown Source)
    [junit]     at java.lang.FinalizerThread.startFinalization(Unknown Source)
    [junit]     at java.lang.FinalizerThread.doFinalizationOnExit(Unknown Source)
    [junit]     at java.lang.FinalizerThread.shutdown(Unknown Source)
    [junit]     at java.lang.VMStart$DefaultShutDownHook.run(Unknown Source)

Without this patch this test passes.

> [drlvm] Infinite recursion in vectored exception handler in debug VM in hardware exception with direction flag set
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2010
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2010
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: ia32, msvc 2003, debug
>            Reporter: Pavel Pervov
>         Assigned To: Gregory Shimansky
>         Attachments: exception_wrapper.patch, memcpy.zip
>
>
> When hardware exception (like access violation) occurs in code where direction flag is set (after 'std' instruction), exception handler will fall into infinite recursion eventually finishing VM without any output.
> The example of such code is implementation of memcpy in Microsoft Visual C++:
> -excerpt begin-
>     std
>     rep movsd
>     cld
> -excerpt end-
> Possible solution would be to wrap exception handler into a code which will save flags, clear direction flag, and then execute the handler.

-- 
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