JDK-8356587 : Missing object ID X in pool jdk.types.Method
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jfr
  • Affected Version: 25,26
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2025-05-08
  • Updated: 2025-08-19
  • Resolved: 2025-07-29
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 25 JDK 26
25Fixed 26 b09Fixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8360403 :  
JDK-8360404 :  
Description
Seen when running one of the stress tests:
 
[stress.process.err] java.lang.AssertionError: Missing object ID 21757971 in pool jdk.types.Method. All IDs should reference an object
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.get(ConstantMap.java:80)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.Reference.resolve(Reference.java:38)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.resolve(ConstantMap.java:119)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.resolve(ConstantMap.java:125)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.resolve(ConstantMap.java:125)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.resolve(ConstantMap.java:125)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.get(ConstantMap.java:100)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.lambda$resolve$0(ConstantMap.java:133)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.LongMap.forEachKey(LongMap.java:239)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ConstantMap.resolve(ConstantMap.java:133)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ChunkParser.lambda$new$2(ChunkParser.java:147)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.LongMap.forEach(LongMap.java:248)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ChunkParser.<init>(ChunkParser.java:147)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ChunkParser.<init>(ChunkParser.java:113)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.ChunkParser.newChunkParser(ChunkParser.java:458)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.EventDirectoryStream.processRecursionSafe(Unknown Source)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.EventDirectoryStream.process(Unknown Source)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.AbstractEventStream.execute(Unknown Source)
[stress.process.err] at jdk.jfr/jdk.jfr.internal.consumer.AbstractEventStream.lambda$startAsync$0(Unknown Source)
[stress.process.err] at java.base/java.lang.Thread.run(Unknown Source)
[stress.process.err] Iteration done: Foreign at Thu May 08 16:36:00 UTC 2025
Comments
A pull request was submitted for review. Branch: jdk25 URL: https://git.openjdk.org/jdk/pull/26529 Date: 2025-07-29 09:56:23 +0000
29-07-2025

Changeset: a3499447 Branch: master Author: Markus Grönlund <mgronlun@openjdk.org> Date: 2025-07-29 09:51:24 +0000 URL: https://git.openjdk.org/jdk/commit/a34994476e8f4783c9f5a83a9c3db63ad605b323
29-07-2025

Fix request approved for JDK 25.
28-07-2025

Thank you for explanation.
28-07-2025

[~kvn] There is no workaround - we only disabled asserting that data loss, so as not to disrupt stress tests unnecessarily.
28-07-2025

[~kvn] Because it involves data loss, and is a regression introduced in JDK25.
28-07-2025

Fix request NMI [~mgronlun] Why you can't push it into 25 update release? JDK 25 already has workaround fix as I understand. This fix is complex and I don't think the risk is low. Let is be tested in JDK 26 and then push into 25u.
28-07-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/26458 Date: 2025-07-24 12:49:36 +0000
24-07-2025

Fix Request (25) I would like to integrate this fix in JDK 25 under RDP2 rules. The bug is a recent regression in JDK 25, involving data loss in the JFR method-sampling area. Risk is considered low.
24-07-2025

[94918000573780ns][11644] At tag site: TAGGING [94918000585920ns][11644] Current epoch: 0x0 [94918000597190ns][11644] Checkpoint id: 0x4 relative checkpoint id 144 [94918000608240ns][11644] Tagging a klass [94918000619640ns][11644] Klass name: applications/kitchensink/process/stress/modules/JfrStressModule [94918000631070ns][11644] Klass address: 0x84086000 (2215141376) [94918000642350ns][11644] Klass id: 0x82e (2094) [94918000653450ns][11644] Klass id tag: 0x82e1205 (137236997) [94918000664750ns][11644] SERIALIZED PREVIOUS_EPOCH_CLEARED USED_THIS_EPOCH METHOD_USED_THIS_EPOCH [94918000676030ns][11644] Tagging a method [94918000687920ns][11644] Method : applications.kitchensink.process.stress.modules.JfrStressModule.generateCustomEvents()V [94918000699530ns][11644] Method address: 0x266d212fbd0 (2640634379216) [94918000710880ns][11644] Method id: 0x82e0005 (137232389) [94918000722050ns][11644] Method trace flags: 0x301 (769) [94918000733460ns][11644] THIS_EPOCH_CLEARED PREVIOUS_EPOCH_CLEARED USED_THIS_EPOCH [94918000745820ns][11644] Element Queue: Enqueue klass into buffer queue with address: 0x266d8880660 (2640742712928) [94918000757450ns][11644] Element Queue: Store klass at buffer address: 0x266d8880690 (2640742712976) [94920220089360ns][4412 ] Element Queue: Dequeue klass from buffer address: 0x266d8880690 (2640742712976) : previous epoch <<---- [94920255491070ns][4412 ] Current epoch: 0x1 [94920255502630ns][4412 ] Checkpoint id: 0x4 relative checkpoint id 145 [94920255513920ns][4412 ] Evaluating method in write loop. Predicate is false. [94920255525020ns][4412 ] Evaluating method in write loop. Leakp is true. [94920255536230ns][4412 ] Klass name: applications/kitchensink/process/stress/modules/JfrStressModule [94920255547460ns][4412 ] Klass address: 0x84086000 (2215141376) [94920255558820ns][4412 ] Klass id: 0x82e (2094) [94920255569820ns][4412 ] Klass id tag: 0x82e1205 (137236997) [94920255581120ns][4412 ] SERIALIZED THIS_EPOCH_CLEARED USED_PREVIOUS_EPOCH METHOD_USED_PREVIOUS_EPOCH [94920255593010ns][4412 ] Method : applications.kitchensink.process.stress.modules.JfrStressModule.generateCustomEvents()V [94920255604450ns][4412 ] Method address: 0x266d1f0b7e8 (2640632133608) [94920255615630ns][4412 ] Method id: 0x82e0005 (137232389) [94920255626560ns][4412 ] Method trace flags: 0x300 (768) [94920255637720ns][4412 ] THIS_EPOCH_CLEARED PREVIOUS_EPOCH_CLEARED Method address: 0x266d212fbd0 (2640634379216) != Method address: 0x266d1f0b7e8 (2640632133608) indicates the method has been replaced. We are likely losing bits during retransform/redefine.
09-07-2025