JDK-8288865 : [aarch64] LDR instructions must use legitimized addresses
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8,11,13
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: aarch64
  • Submitted: 2022-06-21
  • Updated: 2022-08-04
  • Resolved: 2022-07-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 Other
11.0.17-oracleFixed openjdk8u352Fixed
Related Reports
Relates :  
Description
Crashes in STR instructions due to long offsets were fixed by JDK-8235385. But a customer still complains about that the same crashes take place on reading the memory by Unsafe calls. Attached reproducer gets crashed in at least a half of runs. Looks like LDR instructions are to be fixed in the same way as STR ones were.
Comments
Changeset: 1f402896 Author: Alexey Pavlyutkin <apavlyutkin@azul.com> Committer: Yuri Nesterenko <yan@openjdk.org> Date: 2022-07-20 07:08:28 +0000 URL: https://git.openjdk.org/jdk11u/commit/1f4028960a3934853104efd1d95991b137b5f520
03-08-2022

Fix request (8u) The patch fixes crashes on memory reading by Unsafe API with large offsets for aarch64. Except 11->8 path shuffling the patch applied with the only change: it introduces only LDR-related part of the test because STR-related was already integrated to 8u by JDK-8235385 The changes were tested on Ubuntu 18.04.6 LTS (GNU/Linux 4.9.0 aarch64) Verification: hotspot/test/compiler/8235385/NonVolatileMemoryAccessWithLongOffset.java 10 of 10 runs PASS (5 of 10 runs FAILED before the patch applied) Regression: hotspot/test/compiler
20-07-2022

A pull request was submitted for review. URL: https://git.openjdk.org/jdk8u-dev/pull/84 Date: 2022-07-20 09:06:28 +0000
20-07-2022

Changeset: 1f402896 Author: Alexey Pavlyutkin <apavlyutkin@azul.com> Committer: Yuri Nesterenko <yan@openjdk.org> Date: 2022-07-20 07:08:28 +0000 URL: https://git.openjdk.org/jdk11u-dev/commit/1f4028960a3934853104efd1d95991b137b5f520
20-07-2022

[~andrew] I checked, there are at least 3 dependencies missed in 13 and they aren't small (e.g. JDK-8247766 or JDK-8068053). I think it is not worth it
20-07-2022

Fix Request (11u-dev) The patch fixes crashes caused by reading memory by Unsafe API on aarch64 (writting was fixed by JDK-8235385). It also adds tests for both reading/writting cases
19-07-2022

Right, it may be ported to 13u as well but that would also require for porting of the patch done to 11u by JDK-8235385. Should I take care of that?
10-07-2022

Alexey, so this should go to 13u as well, right?
09-07-2022

Makes sense, thanks for the clarification.
22-06-2022

[thartmann] JDK 15+ incorporates full version of JDK-8235385 along with the tests. The changes were just too massive and risky to be backported to JDK 11 & 8 as is, and we applied only very lite version of the patch
22-06-2022

[~apavlyutkin] I assume JDK > 11u is not affected?
22-06-2022

ILW = crash; intermittent with test; no workaround = HLH = P2
22-06-2022

A pull request was submitted for review. URL: https://git.openjdk.org/jdk11u-dev/pull/1164 Date: 2022-06-21 13:21:44 +0000
21-06-2022

[~rcastanedalo] Here is fixed version
21-06-2022