RFR: 8335553: [Graal] Compiler thread calls into jdk.internal.vm.VMSupport.decodeAndThrowThrowable and crashes in OOM situation [v2]

Doug Simon dnsimon at openjdk.org
Wed Jul 10 20:07:48 UTC 2024


On Wed, 10 Jul 2024 06:19:52 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Though I see this is inconsistent with `Exceptions::_throw_msg_cause`
>
> Okay I think I see how the logic works. If we were going to abort we would never reach `_throw_cause` as the initial `_throw` would have exited. But for the `!thread->can_call_Java()` case the original `_throw` would replace the intended real exception with the dummy `VM_exception()`, which is then "caught" and we try to replace with a more specific exception to be thrown via `throw_cause`, which will again replace whichever exception is requested with the dummy `VM_exception()` - so the end result is we will throw the dummy regardless of whether the cause or wrapping exception is specified. So your fix here makes sense.

Great. Would you mind approving this PR as this is the only non-JVMCI file changed.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/20083#discussion_r1672520461


More information about the core-libs-dev mailing list