On Mon, 1 Sep 2025 05:31:43 GMT, Amit Kumar <[email protected]> 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.

I had a deeper look at this and this specific issue can happen only when the 
`byteSize` is 0 for example when calling Arena.allocate(). The 
`testZeroLengthNativeSegment()` test method in 
`test/jdk/java/foreign/TestSegments.java` already covers this code path and 
exercises this bug. So I think it's fine if you don't add any additional test 
as part of this PR. I just have one more review comment which I'll add inline.

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

PR Comment: https://git.openjdk.org/jdk/pull/27027#issuecomment-3243788621

Reply via email to