SHORT SUMMARY: StackOverflowError incorrectly thrown when thread stack straddles 0x80000000 in 32 bit SPARC version. INDICATORS: StackOverflowError thrown with plenty of stack available. COUNTER INDICATORS: Not 32 bit SPARC or very little stack available. TRIGGERS: Interpreter invocation of a method with frame size greater than page size (8K) and thread stack straddles 0x80000000. KNOWN WORKAROUND: Move to 64 bit JVM or change heap size and/or stack size to avoid stack straddling 0x80000000. PRESENT SINCE: JDK 1.4.2 HOW TO VERIFY: Create thread with stack straddling 0x80000000 and invoke method with local variables >8K in size. Use pmap or truss to determine stack locations. NOTES FOR SE: See InterpreterGenerator::generate_stack_overflow_check(). REGRESSION: No.
|