RFR: 8366495: Incorrect minimum memory size allocated in allocateNativeInternal()
Jaikiran Pai
jpai at openjdk.org
Mon Sep 1 07:55:42 UTC 2025
On Mon, 1 Sep 2025 05:31:43 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:
> Originally Reported in OpenJ9, fix by @AditiS11 present here: https://github.com/ibmruntimes/openj9-openjdk-jdk25/pull/32
>
> These test failure were reported in OpenJ9 (x86), I can't reproduce on my system (s390x):
>
> java/foreign/TestFill.java
> java/foreign/TestSegments.java
> java/foreign/TestSegmentBulkOperationsContentHash.java
> java/foreign/TestStringEncoding.java
> java/foreign/TestVarArgs.java
>
>
>
> ```java
> // Always allocate at least some memory so that zero-length segments have distinct
> // non-zero addresses.
> alignedSize = Math.max(1, alignedSize);
>
>
> Here minimum-allocated size will be 1, which is incorrect because
>
>
> private static void initNativeMemory(long address, long byteSize) {
> for (long i = 0; i < byteSize; i += Long.BYTES) {
> UNSAFE.putLongUnaligned(null, address + i, 0);
> }
> }
>
> `initNativeMemory()` is going to write Long.
Hello Amit, would it be possible to add a jtreg test for this? Do you know what was the code path or values for the `allocateNativeSegment()` call which triggered this issue. Having that replicated in a regression test I think would prevent this from happening again.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27027#issuecomment-3241265723
More information about the core-libs-dev
mailing list