RFR (XS): 7129715: MAC: SIGBUS in nsk stress test (original) (raw)
Roland Westrelin roland.westrelin at oracle.com
Thu Jun 14 07:31:40 PDT 2012
- Previous message: hg: hsx/hotspot-comp/hotspot: 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
- Next message: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
http://cr.openjdk.java.net/~roland/7129715/webrev.00/
StackOverflowError exceptions may get lost on OSX. The changes that were made to the signal handler to check for SIGSEGV or SIGBUS rather than only SIGSEGV or only SIGBUS in several places broke the logic of the handler.
With the test of the CR, the thread catches a SIGSEGV or SIGBUS because it's exhausting its stack. The stub to return to is set:
stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::STACK_OVERFLOW);
but it is overwritten in:
#if defined(APPLE)
// 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions.
// 64-bit Darwin may also use a SIGBUS (seen with compressed oops).
// Catching SIGBUS here prevents the implicit SIGBUS NULL check below from
// being called, so only do so if the implicit NULL check is not necessary.
} else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) {
#else
} else if (sig == SIGBUS /* && info->si_code == BUS_OBJERR /) {
#endif
// BugId 4454115: A read from a MappedByteBuffer can fault
// here if the underlying file has been truncated.
// Do not crash the VM in such a case.
CodeBlob cb = CodeCache::find_blob_unsafe(pc);
nmethod* nm = cb->is_nmethod() ? (nmethod*)cb : NULL;
if (nm != NULL && nm->has_unsafe_access()) {
stub = StubRoutines::handler_for_unsafe_access();
}
so the stack overflow exception is not thrown and the thread continues growing the stack leading to a fatal error.
Roland.
- Previous message: hg: hsx/hotspot-comp/hotspot: 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
- Next message: RFR (XS): 7129715: MAC: SIGBUS in nsk stress test
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list