Hello
After new mode was chosen for kernel tests, they crash on win32. The
test which crashes is the same in all 3 modes: j.l.SystemExtensionTest.
I've found 2 types of failures. Exception is thrown with two different
status. It is STATUS_OBJECT_TYPE_MISMATCH (0xC0000024) or
STATUS_INVALID_HANDLE (0xC0000008).
First and more often happening one happens in apr_thread_mutex_lock when
executing EnterCriticalSection(&mutex->section). The section appears to
be wrong, the mutex pointer is sometimes bad too. But it could happen
because stack is hopelessly broken when the crash happens, so local
variable values may be just bad in debugger.
To work around the broken stack in debugger I tried to use tracing, but
it only started to show the 2nd way to crash.
The 2nd type of crash happens in finalization of Runtime$SubProcess
class. The handle passed to the close0 function is bogus. The long
pointer is Java on 32 bit has upper 32 bits filled with some garbage, so
it is obvious that this is not a valid 32-bit handle. Maybe it has
something to do with finalization.
Is there a way to check for valid handle in windows? Something which
could be put into assert, to catch the problem before the actual call to
the function is done...
--
Gregory
- [drlvm][win32] Kernel tests crashes on win32 Gregory Shimansky
-