From a discussion on it previously :
https://news.ycombinator.com/item?id=39741517 by fweimer
> The signal comes from a safe fetch, which is just a read that allows ignoring the fault as if it never happened. Such a signal is deliver synchronously, so the usual restrictions for asynchronous signal handlers do not apply.
> The code in question takes into account that the value read might be garbage. See the big comment here: https://github.com/openjdk/jdk/commit/29397d29baac3b29083b1b...
> On current CPUs and operating systems, this is not an optimization, so the code was removed earlier this year: https://bugs.openjdk.org/browse/JDK-8320317
(there's a lot more comments further down that are worth reading)
It is known where this is causing a problem and the code was removed a few months ago in the code for Java 23.