On Mon, 23 Oct 2023 13:58:27 GMT, Jorn Vernee <jver...@openjdk.org> wrote:

> Explicitly handle UpcallStub allocation failures by terminating. We currently 
> might try to use the returned `nullptr` which would fail sooner or later. 
> This patch just makes the termination explicit.

I find it pretty weird to terminate the VM if we cannot allocate upcall stub. 
Does this mean the user code could actually terminate the VM on this `fatal`? 
Unit test suggests so.

Can the VM code actually handle things without upcall stub present, if e.g. 
memory is exhausted?

src/hotspot/share/code/codeBlob.cpp line 761:

> 759:     MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
> 760:     blob = new (size) UpcallStub(name, cb, size, receiver, 
> frame_data_offset);
> 761:     if (blob == nullptr) {

I think it would be safer to call into `fatal` without having `CodeCache_lock` 
held. Move it out of `MutexLocker` scope?

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

PR Review: https://git.openjdk.org/jdk/pull/16311#pullrequestreview-1696785943
PR Review Comment: https://git.openjdk.org/jdk/pull/16311#discussion_r1371421151

Reply via email to