Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8028243 | 8 | Mikael Gerdin | P2 | Closed | Fixed | b116 |
JDK-8028956 | port-stage-ppc-aix | Mikael Gerdin | P2 | Resolved | Fixed | master |
Scenario:
A ConstMethod is the last allocated object in a VirtualSpaceNode, such that the very byte after the end of the byte code stream is unmapped.
The last two bytecodes are:
- checkcast #6 0xc0 0x00 0x06
- areturn 0xb0
- UNMAPPED MEMORY
At the checkcast we use InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp to load the constant pool index for the checkcast, that function uses:
"mov 0x1(%esi),%ebx" (%esi is the bcp)
This a 4 byte load, so the last byte read will actually end up in the unmapped memory right after the areturn and we'll get a SEGV.
I=H (VM crash)
L=L (unlikely situation)
W=H (no known workaround)
=>P2
A ConstMethod is the last allocated object in a VirtualSpaceNode, such that the very byte after the end of the byte code stream is unmapped.
The last two bytecodes are:
- checkcast #6 0xc0 0x00 0x06
- areturn 0xb0
- UNMAPPED MEMORY
At the checkcast we use InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp to load the constant pool index for the checkcast, that function uses:
"mov 0x1(%esi),%ebx" (%esi is the bcp)
This a 4 byte load, so the last byte read will actually end up in the unmapped memory right after the areturn and we'll get a SEGV.
I=H (VM crash)
L=L (unlikely situation)
W=H (no known workaround)
=>P2
- backported by
-
JDK-8028956 Crash in interpreter because get_unsigned_2_byte_index_at_bcp reads 4 bytes
- Resolved
-
JDK-8028243 Crash in interpreter because get_unsigned_2_byte_index_at_bcp reads 4 bytes
- Closed
- relates to
-
JDK-8027352 JVM allocates metadata structures immediately adjacent to unmapped memory
- Closed