harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@gmail.com>
Subject Re: [drlvm][classlib unit tests] iterative runs
Date Thu, 23 Nov 2006 21:19:59 GMT
On Wednesday 22 November 2006 03:02 Alexei Fedotov wrote:
> Tatiana,
> That's great! Feel free to file JIRA issues about new problems.
>
> This is quite interesting that you haven't discovered
> org.apache.harmony.logging.tests.java.util.logging.SocketHandlerTest
> failure using effectively the same revision as I.  This makes me think
> that my problems can be local to my computer.

The problem with this test appeared to be a regression after HARMONY-2006. 
DRLVM started to halt of all unknown exceptions passing to VEH handler 
when -Dvm.assert_dialog=true. This is quite wrong thing to do because VEH 
handler is called in case of C++ exceptions too.

Also it appeared that windows kernel uses exceptions inside of itself, so VEH 
handler is called for some API functions which return an error, like in case 
of SocketHandlerTest. Previous to HARMONY-2006 [1] VM didn't react to any 
unknown codes, just returned EXCEPTION_CONTINUE_EXECUTION from the handler. 
Now it started to call DebugBreak in case when 
UnhandledExceptionFilter(nt_exception) == EXCEPTION_CONTINUE_SEARCH.

Ivan offered a quick fix in HARMONY-2285, which calls this function only if 
IS_ERROR [2] macro returns true for the exception code. The fix helped, and 
now in interactive test runs when -Dvm.assert_dialog=true (default) tests 
pass just as well as in non-interactive mode.

I am still a bit unsure, why mess around with unknown exception codes, maybe 
it is better to return EXCEPTION_CONTINUE_SEARCH always, and the debugging 
dialog will be open by the default NT handler.

[1] 
http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/util/win/ia32/nt_exception_filter.cpp?p2=%2Fincubator%2Fharmony%2Fenhanced%2Fdrlvm%2Ftrunk%2Fvm%2Fvmcore%2Fsrc%2Futil%2Fwin%2Fia32%2Fnt_exception_filter.cpp&p1=%2Fincubator%2Fharmony%2Fenhanced%2Fdrlvm%2Ftrunk%2Fvm%2Fvmcore%2Fsrc%2Futil%2Fwin%2Fia32%2Fnt_exception_filter.cpp&r1=476183&r2=476182&view=diff&pathrev=476183

[2] 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/74497f4b-1c88-4c8a-b9e7-606e77364f48.asp

-- 
Gregory

Mime
View raw message