-
Bug
-
Resolution: Fixed
-
P3
-
8, 11, 17, 18, 21, 23, 24, 25
-
b13
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8353026 | 24.0.2 | Tobias Hartmann | P3 | Resolved | Fixed | b02 |
JDK-8352072 | 21.0.8-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8353675 | 21.0.8 | Paul Hohensee | P3 | Resolved | Fixed | master |
Instead of the correct logic for the is_bottom frame, there is code that sets caller_was_method_handle based on if the invoke is invokedynamic or invokehandle. This code dates back to ricochet frames when there could be an arbitrary mismatch between the arg count of the caller's invoke and the callee. However, this code fails to take into account all cases of calls to has_member_arg() MH linkTo* intrinsics.
In addition, the last_frame_adjust() logic is also broken. The adjustment can be done when not needed, and the same caller frame can be adjusted multiple times (every time the callee is deoptimized), resulting in unbounded frame/stack size growth.
- backported by
-
JDK-8352072 Caller/callee param size mismatch in deoptimization causes crash
-
- Resolved
-
-
JDK-8353026 Caller/callee param size mismatch in deoptimization causes crash
-
- Resolved
-
-
JDK-8353675 Caller/callee param size mismatch in deoptimization causes crash
-
- Resolved
-
- relates to
-
JDK-7009361 JSR 292 Invalid value on stack on solaris-sparc with -Xcomp
-
- Closed
-
-
JDK-8055523 inconsistent args passed to AbstractInterpreter::layout_activation
-
- Closed
-
- links to
-
Commit(master) openjdk/jdk21u-dev/a3738669
-
Commit(master) openjdk/jdk24u/4128d17e
-
Commit(master) openjdk/jdk/20ea218c
-
Review(master) openjdk/jdk21u-dev/1573
-
Review(master) openjdk/jdk24u/156
-
Review(master) openjdk/jdk/23557