stack overflow interacts poorly with classloaders

Godmar Back gback at cs.utah.edu
Mon Jun 12 13:35:32 PDT 2000



Just preload it once and for all and throw the same type in all threads, 
even those that run in a classloader context.  
This should be "close enough".

	- Godmar

> 
> 
> hi,
> 
> I've run into an odd problem that I don't know quite how to fix. 
> Basically, a stack overflow isn't handled particularly well, especially
> when there are class loaders involved.  Since we execute a good deal of
> code to throw the exception it eats up even more stack and we risk going
> past the red zone and overwriting the jthread structure adjacent to the
> stack, or other important data.  The problem is exasperated when the
> method that caused the overflow is in a class that was loaded by a class
> loader.  In this case we would be asking java code to load our class, but
> the java code will just complain about not having any stack!  So far the
> only options i've come up with to fix this annoying little problem is to
> either: 
> 
>   1. preload the StackOverflow class and any of its parents if they are
>      referenced by a class.  Could be a lot of work to do for an unlikely
>      situation
> 
>   2. Have the offending thread use some other thread to do most of the
>      class loading work, and then the offending thread can take the final
>      step and throw the exception.  I like this option the most, but
>      theres bound to be some nasty problem...
> 
> Any ideas?
> 
> thanks,
> 
> tim stack
> 



More information about the kaffe mailing list