VMError and masked signals

Coleen Phillimore coleen.phillimore at oracle.com
Wed Nov 10 07:06:26 PST 2010


On 11/9/2010 11:06 PM, Tom Rodriguez wrote:
> I was looking at a crash Vladimir saw with a truncated hs_err file when debugging a SIGFPE.  What happens is that during the reporting in VMError is tries to print the native stack and gets a SEGV.  Instead of restarting the reporting like it normally does the process just aborts.  I looked into it a bit and it appears that it's because we don't unmask SEGV and BUS when we're running the VMError stuff so if we get one of them while in the signal handler, the OS simply kills the process.  Normally all signals are masked except the one being handled so we will handle a SEGV when reporting a SEGV or BUS when reporting a BUS but we'll be killed the OS when they are mixed.  I think VMError::reset_signal_handler and crash_handler should be unblocking SEGV and BUS during reporting if we want to get complete hs_err files.  Does anyone see any problems with this?
>
> tom
Not at all.

Coleen


More information about the hotspot-runtime-dev mailing list