Internal Error (os_windows_x86.cpp:114)

David Holmes David.Holmes at oracle.com
Wed Jun 9 23:26:05 PDT 2010


Gili,

Note I'm no Windows programmer so I don't understand all the details here.

First I'd suggest enabling verification to ensure that the bytecode 
generator is generating well-formed bytecode.

That said it seems to me that the guarantee failure indicates a problem 
in the VM error handling code because it states:

LONG HandleExceptionFromCodeCache(
...
   result = topLevelExceptionFilter(&ep);

   // We better only get a CONTINUE_EXECUTION from our handler
   // since we don't have unwind information registered.

   guarantee( result == EXCEPTION_CONTINUE_EXECUTION,
              "Unexpected result from topLevelExceptionFilter");

Yet topLevelExceptionFilter can return EXCEPTION_CONTINUE_SEARCH in a 
number of contexts, and potentially trigger the guarantee. However it 
may be that such a return value is "impossible" under normal expected 
circumstances.

David Holmes

cowwoc said the following on 06/10/10 11:45:
> 
> cowwoc wrote:
>> Hi,
>>
>> I can consistently reproduce a JDK crash under build 1.7.0-ea-b94 64-bit
>> mode. The error in question is:
>>
>> Internal Error (os_windows_x86.cpp:114), pid=5024, tid=1848
>> guarantee(result == EXCEPTION_CONTINUE_EXECUTION) failed: Unexpected
>> result from topLevelExceptionFilter
>>
>> The Java code which triggers this assert comes from a bytecode generator.
>> I've used a disassembler but I cannot spot a problem with the bytecode as
>> compared to what javac generates. Can someone please suggest what I can do
>> to track this down? I wish the assert printed the value of "result" :)
>>
>> Thanks,
>> Gili
>>
> 
> Sorry I meant to say the assert gets triggered by code that is generated by
> a bytecode generator. I can attach a copy of the offending class file if it
> will help.
> 
> Gili


More information about the hotspot-dev mailing list