[jdk8u-dev] RFR: 8352942: jdk/jfr/startupargs/TestMemoryOptions.java fails with 32-bit build

KIRIYAMA Takuya duke at openjdk.org
Tue Apr 15 04:37:51 UTC 2025


On Fri, 28 Mar 2025 18:36:16 GMT, Paul Hohensee <phh at openjdk.org> wrote:

>> Hi All,
>> I would like to add this bug fix for the bug in jdk/jfr/startupargs/TestMemoryOptions.java. This test contains 24 test cases and fails the "ThreadBufferSizeExceedMemorySize" case.
>> The cause of this bug is the memory allocation issue, which occurs only on 32-bit Server VM, not on Client VM or 64-bit JDK. The failure happens because Server VM's default heap size reduces available memory space, causing JFR to fail memory allocation.
>> To resolve this issue, -Xmx256M is explicitly set, matching the Client VM default heap size, ensuring sufficient memory space remains available for JFR.
>> I believe that this test verifies that the combination of memory options for JFR is valid or invalid and that the MaxHeapSize setting does not affect the verification.
>> Change has been verified locally, test-fix only, no risk.
>> 
>> Would someone please review this fix?
>
> Yes, there is lack of enthusiasm for 32-bit ports, and the x86 32-bit port is in the process of being removed in JDK 25. But, the arm-32 port still exists in tip, and the LTS 32-bit ports are still supported.

@phohensee 

I am sorry for the late reply as it took time to verify.
I didn't have an arm environment, so I built a slightly older revision in an x86 environment.
As a result, with the default Xmx, the latest java hardly reproduced this problem.
If larger Xmx is used, the combination with the JFR option may cause an error.



$ jdk_32/jdk/bin/java -Xmx3221225472 -XX:FlightRecorderOptions=threadbuffersize=30m -XX:StartFlightRecording -version
[0.144s][warning][jfr,system] Memory allocation failed for size [31457304] bytes
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 31457304 bytes. Error detail: AllocateHeap
# An error report file with more information is saved as:
# /work/hs_err_pid411102.log
[thread 411103 also had an error]

[error occurred during error reporting (), id 0xe0000001, Out of Memory Error (src/hotspot/share/jfr/utilities/jfrAllocation.cpp:84)]


It is unlikely that the tests will fail with the latest java, but the tests are potentially risky and I will fix it in the latest java.
This pull request is closed once.

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

PR Comment: https://git.openjdk.org/jdk8u-dev/pull/641#issuecomment-2803765067


More information about the jdk8u-dev mailing list