One of our customer complains of a deadlock in error reporting procedure. The problem is that they use OnError hook, so VMError::check_timeout() does not detect reporting timeout due to
if (ShowMessageBoxOnError
|| (OnError != nullptr && OnError[0] != '\0')
|| Arguments::abort_hook() != nullptr) {
return false;
}
and therefore does not kill the process.
[~stuefe] the author of original code confirmed that there is not a reason for such behaviour, so I'm going to remove OnError check from the condition
if (ShowMessageBoxOnError
|| (OnError != nullptr && OnError[0] != '\0')
|| Arguments::abort_hook() != nullptr) {
return false;
}
and therefore does not kill the process.
[~stuefe] the author of original code confirmed that there is not a reason for such behaviour, so I'm going to remove OnError check from the condition
- duplicates
-
JDK-8303861 Error handling step timeouts should never be blocked by OnError and others
- Resolved
- relates to
-
JDK-8303861 Error handling step timeouts should never be blocked by OnError and others
- Resolved
-
JDK-8303862 Decoder should not use malloc during error handling
- Closed
-
JDK-8166944 Hanging Error Reporting steps may lead to torn error logs.
- Resolved
- links to
-
Review openjdk/jdk/12925