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