RFR(xxs): 8176140: Crashes or timeouts during error reporting may lead to infinitely repeated error logs until ErrorLogTimeout is hit
david.holmes at oracle.com
Thu Mar 9 02:27:17 UTC 2017
On 9/03/2017 4:38 AM, Thomas Stüfe wrote:
> Hi all,
> please review this tiny fix.
> Issue: https://bugs.openjdk.java.net/browse/JDK-8176140
> Basically, the error reporting had this bug where a secondary crash (or,
> after JDK-8166944, a timeout) could lead to an error log with infinitely
> repeated content. In practice, one would hit either the maximum stack depth
> of the reporting thread or the ErrorLogTimeout.
> This would happen if the crash were to happen inside
> VMError::report_and_die(), after the reporting is done
> |VMError::report(&log, true)| and before the |log_done| flag is set. This
> is a very small window, but Chris was able to trigger this bug by
> introducing an error inside an ubiquitous base function (malloc), so it is
> not just theoretical.
> The fix is simply to set log_done right after the VMError::report() call.
> Thanks & Kind Regards, Thomas
More information about the hotspot-runtime-dev