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