Gregory, Ivan, Thank you for a deep and thorough research on Windows architecture, and a wonderful result. Keep doing great things! -- With best regards, Alexei
On 11/24/06, Gregory Shimansky <[EMAIL PROTECTED]> wrote:
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
