RFR: 8361211: C2: Final graph reshaping generates unencodeable klass constants
Aleksey Shipilev
shade at openjdk.org
Wed Jul 30 18:51:26 UTC 2025
See the bug for more investigation. I have tried to come up with an isolated test, but failed. So I am doing this change somewhat blindly, without a clear regression test. The investigation on the CTW points directly to this code, and I believe we should be more conservative in final graph reshaping. [JDK-8343206](https://bugs.openjdk.org/browse/JDK-8343206) added the assert for `ConNKlass`, which somehow does not trigger. I think it is safe to bail out of this transformation.
Also, this only plugs this particular leak. I think we should really be disabling the abstract/interface encoding optimization until C2 does not expose itself to this issue on more paths. There is [JDK-8343218](https://bugs.openjdk.org/browse/JDK-8343218) that we can re-open.
Additional testing:
- [x] Linux x86_64 server fastdebug, a rare CTW failure does not reproduce anymore
- [x] Linux x86_64 server fastdebug, `tier1`
- [ ] Linux x86_64 server fastdebug, `all`
- [ ] Linux AArch64 server fastdebug, `all`
-------------
Commit messages:
- Fix
Changes: https://git.openjdk.org/jdk/pull/26559/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26559&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8361211
Stats: 8 lines in 1 file changed: 6 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/26559.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/26559/head:pull/26559
PR: https://git.openjdk.org/jdk/pull/26559
More information about the hotspot-compiler-dev
mailing list