JDK-8309764 : assert(Universe::is_in_heap(result)) failed: object not in heap 0x0000000000000010
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 21
  • Priority: P2
  • Status: Closed
  • Resolution: Other
  • OS: os_x
  • CPU: x86_64
  • Submitted: 2023-06-10
  • Updated: 2023-12-20
  • Resolved: 2023-12-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 22
22Resolved
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
The following test failed in the JDK21 CI:

resourcehogs/serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java

Here's a snippet from the log file:

Region: 0x00000007ffa00000,0x00000007ffc00000,0x00000007ffc00000:Old
Region: 0x00000007ffc00000,0x00000007ffe00000,0x00000007ffe00000:Old
Region: 0x00000007ffe00000,0x00000007fff023f8,0x0000000800000000:Old
hsdb> + quit

STDOUT: Executable=/System/Volumes/Data/mesos/work_dir/jib-master/install/jdk-21+26-2328/macosx-x64-debug.jdk/jdk-21/fastdebug/bin/java
STDOUT: Identifier=com.oracle.java.java
STDOUT: Format=Mach-O thin (x86_64)
STDOUT: CodeDirectory v=20400 size=621 flags=0x2(adhoc) hashes=9+7 location=embedded
Target JDK is adhoc signed, but not hardened.
STDOUT: Signature=adhoc
STDOUT: Info.plist entries=5
STDOUT: TeamIdentifier=not set
STDOUT: Sealed Resources=none
STDOUT: Internal requirements count=0 size=12
Starting clhsdb against 52604
Adding 'sudo -E -n' to the command.
[2023-06-10T12:09:46.095023Z] Gathering output for process 52613
[2023-06-10T12:10:09.998014Z] Waiting for completion for process 52613
[2023-06-10T12:10:09.998069Z] Waiting for completion finished for process 52613
Output: 
Attaching to process 52604, please wait...
hsdb> hsdb> + verbose true
hsdb> + scanoops 0x000000060fe00000 0x0000000610000000
0x000000060fe00000 [Ljava/lang/String;
hsdb> + quit

 LingeredApp stdout: [#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/System/Volumes/Data/mesos/work_dir/slaves/741e9afd-8c02-45c3-b2e2-9db1450d0832-S176103/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/4214e807-0172-4d6c-8f9f-f9c08bb7ac6b/runs/ea0ea94c-aca4-4eed-943b-c9febdfe838a/workspace/open/src/hotspot/share/oops/compressedOops.inline.hpp:58), pid=52604, tid=24067
#  assert(Universe::is_in_heap(result)) failed: object not in heap 0x0000000000000010
#
# JRE version: Java(TM) SE Runtime Environment (21.0+26) (fastdebug build 21-ea+26-LTS-2328)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 21-ea+26-LTS-2328, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
# Core dump will be written. Default location: core.52604
#
# An error report file with more information is saved as:
# /System/Volumes/Data/mesos/work_dir/slaves/741e9afd-8c02-45c3-b2e2-9db1450d0832-S177403/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/9276d790-a0db-4def-8d4f-5ed412b65d1c/runs/bb070c8e-fe3e-4932-a507-7207b526877a/testoutput/test-support/jtreg_open_test_hotspot_jtreg_hotspot_misc/scratch/0/hs_err_pid52604.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#
];
 LingeredApp stderr: []
 LingeredApp exitValue = 134
----------System.err:(13/849)----------
java.io.IOException: LingeredApp terminated with non-zero exit code 134
	at jdk.test.lib.apps.LingeredApp.stopApp(LingeredApp.java:427)
	at jdk.test.lib.apps.LingeredApp.stopApp(LingeredApp.java:515)
	at ClhsdbRegionDetailsScanOopsForG1.main(ClhsdbRegionDetailsScanOopsForG1.java:88)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
	at java.base/java.lang.Thread.run(Thread.java:1583)

JavaTest Message: Test threw exception: java.io.IOException: LingeredApp terminated with non-zero exit code 134
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.io.IOException: LingeredApp terminated with non-zero exit code 134
----------rerun:(43/9263)*----------


Here's the crashing thread's stack:

---------------  T H R E A D  ---------------

Current thread (0x00007ff2d0b70b80):  WorkerThread "GC Thread#3"    [id=24067, stack(0x0000700009068000,0x0000700009168000) (1024K)]

Stack: [0x0000700009068000,0x0000700009168000],  sp=0x0000700009167880,  free space=1022k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.dylib+0x14d5819]  VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x739  (compressedOops.inline.hpp:58)
V  [libjvm.dylib+0x14d5f1b]  VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
V  [libjvm.dylib+0x7db3d5]  report_vm_error(char const*, int, char const*, char const*, ...)+0xc5
V  [libjvm.dylib+0x3a21b8]  CompressedOops::decode_not_null(narrowOop)+0x1c8
V  [libjvm.dylib+0xa8a6c8]  void G1VerifyLiveAndRemSetClosure::do_oop_work<narrowOop>(narrowOop*)+0x198
V  [libjvm.dylib+0xa8fa7b]  void ObjArrayKlass::oop_oop_iterate<narrowOop, G1VerifyLiveAndRemSetClosure>(oop, G1VerifyLiveAndRemSetClosure*)+0x25b
V  [libjvm.dylib+0xa8f791]  void OopOopIterateDispatch<G1VerifyLiveAndRemSetClosure>::Table::oop_oop_iterate<ObjArrayKlass, narrowOop>(G1VerifyLiveAndRemSetClosure*, oop, Klass*)+0x51
V  [libjvm.dylib+0xa881b4]  void oopDesc::oop_iterate<G1VerifyLiveAndRemSetClosure>(G1VerifyLiveAndRemSetClosure*)+0x144
V  [libjvm.dylib+0xa87f23]  HeapRegion::verify_liveness_and_remset(VerifyOption) const+0x473
V  [libjvm.dylib+0xa882c3]  HeapRegion::verify(VerifyOption) const+0xd3
V  [libjvm.dylib+0x9b11a5]  VerifyRegionClosure::do_heap_region(HeapRegion*)+0x245
V  [libjvm.dylib+0xa92d43]  HeapRegionManager::par_iterate(HeapRegionClosure*, HeapRegionClaimer*, unsigned int) const+0x173
V  [libjvm.dylib+0x9b0f48]  G1VerifyTask::work(unsigned int)+0x38
V  [libjvm.dylib+0x154636c]  WorkerThread::run()+0x7c
V  [libjvm.dylib+0x13ff39f]  Thread::call_run()+0x17f
V  [libjvm.dylib+0x112fbff]  thread_native_entry(Thread*)+0x14f
C  [libsystem_pthread.dylib+0x6109]  _pthread_start+0x94
C  [libsystem_pthread.dylib+0x1b8b]  thread_start+0xf
Comments
Most likely a HW issue as indicated by the comments, closing. The machine has been disabled too already.
20-12-2023

Deferral request (JDK 21): This issues seems to only occur on a single machine in our CI, does not occur on other similar machines. There is a very high chance this is a hardware error, see also the linked non-reproducable issues that only occur on that machine. It has been put aside for (memory) error checking, which is unlikely to complete within this release cycle. Given unsuccessful extensive reproduction attempts on other machines, there is very little risk that this is an actual bug.
12-07-2023

Some information from debugging: The crash occurs during heap verification at VM exit. The (humongous) object that contains the bad reference is at 0x000000060fe00000 (region 127). Having 0x00010 in that object array is more than unexpected; the test sets the first part (1/16th) of that 1GB humongous objects to refer a set of constant strings. I.e. there is an apparently random '1' bit set at 0x647a6cbd4 (region 572) that is in a sea of zeros (from region 158 to 639).
26-06-2023

Another bug with the same assertion failure, but it has a different stack trace: JDK-8296915 assert(Universe::is_in_heap(result)) failed: object not in heap 0x0000000000000010
10-06-2023