JDK-8316880 : AArch64: "stop: Header is not fast-locked" with -XX:-UseLSE since JDK-8315880
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 21,22,repo-lilliput-17
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • CPU: aarch64
  • Submitted: 2023-09-25
  • Updated: 2024-04-08
  • Resolved: 2023-10-03
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 21 JDK 22
21.0.2Fixed 22 b18Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Description
Building a fastdebug image on a machine without LSE (e.g. A72) or explicitly disabling LSE results in:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (0xe0000000), pid=64585, tid=64619
#  stop: Header is not fast-locked
#
# JRE version: OpenJDK Runtime Environment (22.0) (fastdebug build 22-internal-git-a2391a92c)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 22-internal-git-a2391a92c, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# J 1373 c2 sun.nio.ch.NativeThreadSet.add()I java.base (155 bytes) @ 0x0000ffff7ccdf110 [0x0000ffff7ccdef80+0x0000000000000190]
#
Comments
A pull request was submitted for review. URL: https://git.openjdk.org/lilliput-jdk17u/pull/73 Date: 2024-04-08 15:55:16 +0000
08-04-2024

[jdk21u-fix-request] Approval Request from Aleksey Shipilëv Clean backport to fix a JVM bug, easily reproducible with -UseLSE with LockingMode=2.
17-10-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk21u/pull/258 Date: 2023-10-16 19:31:27 +0000
16-10-2023

Changeset: b6a97c07 Author: Nick Gasson <ngasson@openjdk.org> Date: 2023-10-03 08:17:51 +0000 URL: https://git.openjdk.org/jdk/commit/b6a97c078043862b20bd8e1d1b8ccb8699995515
03-10-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/15978 Date: 2023-09-29 08:12:06 +0000
29-09-2023

We found the same issue while looking into JDK-8316921. In that bug we have a patch that adds some extra asserts to catch this issue.
28-09-2023

ILW = Build failure with LSE instructions disabled or on machines without LSE, only on aarch64 and if LSE instruction disabled, use -XX:+UseLSE or disable compilation of affected method = HMM = P2
26-09-2023

The problem is one of the temporaries passed to MacroAssember::lightweight_lock() might be rscratch1 which is clobbered by MacroAssembler::cmpxchg() when UseLSE is false.
25-09-2023