Details
-
Bug
-
Resolution: Fixed
-
P4
-
17, 18
-
b19
-
ppc
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8275399 | 17.0.2 | Martin Doerr | P4 | Resolved | Fixed | b03 |
Description
We are getting SIGSEGV when running the test "runtime/logging/RedefineClasses.java" with ZGC on PPC64.
The VM crashes while trying to read (*p)->klass() in "ZNMethod::log_register". āpā points to an Oops table slot in an nmethod which contains a null Oop.
This happens on PPC64, because C1 allocates Oop slots for PatchingStubs and initializes them to null. (The actual Oop will get inserted during execution time when the PatchingStub gets executed.)
"ZNMethod::log_register" needs to be able to deal with null Oops on PPC64 for this reason.
Note: C1 PatchingStubs are not used on aarch64 and x86_64 uses Oops embedded into the instruction stream instead of the nmethod Oop slots.
The VM crashes while trying to read (*p)->klass() in "ZNMethod::log_register". āpā points to an Oops table slot in an nmethod which contains a null Oop.
This happens on PPC64, because C1 allocates Oop slots for PatchingStubs and initializes them to null. (The actual Oop will get inserted during execution time when the PatchingStub gets executed.)
"ZNMethod::log_register" needs to be able to deal with null Oops on PPC64 for this reason.
Note: C1 PatchingStubs are not used on aarch64 and x86_64 uses Oops embedded into the instruction stream instead of the nmethod Oop slots.
Attachments
Issue Links
- backported by
-
JDK-8275399 [ZGC] missing null check in ZNMethod::log_register
- Resolved
- relates to
-
JDK-8274851 [ppc64] Port zgc to linux on ppc64le
- Resolved
- links to
-
Commit openjdk/jdk17u/8cb96344
-
Commit openjdk/jdk/cf828673
-
Review openjdk/jdk17u/195
-
Review openjdk/jdk/5892
(1 links to)