[kaffe] Re: flestmail - daily - 365/365 passed (100.0%) (0 errors, 0 failures)

Timothy Stack stack at cs.utah.edu
Tue Sep 17 07:52:15 PDT 2002


On Tuesday, September 17, 2002, at 02:57  AM, Patrick Tullmann wrote:

>>> But, I think its having problems because Kaffe is hanging in the
>>> ThreadInterrupt test.  There is a ThreadInterrupt.fail in both intrp
>>> trees that contains only:
>>>
>>> 	Success 0a.
>>
>> Yep, this is consistently repeatable on my Linux/x86 box (with 
>> intrp-debug).
>
> I've made a bit of progress on this bug.  First, I'll note that
> running with '-vmdebug ELOOKUP' is wicked handy!  It shows all the
> exceptions that are thrown and where they're caught.  The
> ThreadInterrupt tests seems to be getting into an infinite loop of
> exception dispatches:
>
>   dispatchException(): java/lang/InterruptedException
>   java/lang/Thread.waitOn has no handlers.
>   java/lang/Thread.sleep has 2 handlers (throw was pc=0x2b):
>     Handler 0 covers 0x25-0x31
>     Found handler @ 0x31: catches all exceptions.
>   dispatchException(): java/lang/InterruptedException
>   java/lang/Thread.sleep has 2 handlers (throw was pc=0x37):
>     Handler 0 covers 0x25-0x31
>     Handler 1 covers 0x31-0x37
>     Found handler @ 0x31: catches all exceptions.
>   dispatchException(): java/lang/InterruptedException
>   java/lang/Thread.sleep has 2 handlers (throw was pc=0x37):
>     Handler 0 covers 0x25-0x31
>     Handler 1 covers 0x31-0x37
>     Found handler @ 0x31: catches all exceptions.
> <This repeats for all eternity.>
>
> The particular test being run starts a thread in a 5s sleep, then
> starts a second thread to do a 1s sleep, then interrupt the first
> thread.  The above trace is for the 5s sleeping thread (at least, I'm
> pretty sure it is).  The interrupt is delivered correctly, but the
> subsequent exception doesn't make it out of Thread.sleep.  I believe
> the catch-all handler in Thread.sleep is the end of the
> synchronization block around the waitOn() call.
>
> I haven't had a chance to look at the interpreter's exception dispatch
> code, yet.  I was hoping this analysis might trigger some ah-ha moment
> in someone else...  :)  If not, I'll get back to this sooner or later.

I'm pretty sure this is kjc's fault, try compiling the test with jikes 
and comparing the byte code.  From what little i did with this it 
looked like kjc might be inadvertently generating the infinite loop in 
the exception handler.

> -Pat

tim stack





More information about the kaffe mailing list