RFR: 8321219: runtime/jni/FastGetField: assert(is_interpreted_frame()) failed: interpreted frame expected [v3]
Serguei Spitsyn
sspitsyn at openjdk.org
Wed Dec 6 20:18:47 UTC 2023
On Wed, 6 Dec 2023 02:33:21 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
>>
>> fixed trailing whitespace
>
> src/hotspot/share/prims/jvmtiThreadState.cpp line 561:
>
>> 559: // it is an important optimization to create JvmtiThreadState objects lazily.
>> 560: // This optimization is disabled when watchpoint capabilities are present. It is to
>> 561: // work around a bug with virtual thread frames which can be not deoptimized in time.
>
> Suggestion: "This optimization is *also* disabled when ..."
>
> The phrase "which can be not deoptimized in time." is unclear. Are we racing with deoptimization?
Than you for the suggestion. In fact, I did not finish with the scalability related optimizations and will continue in 23. Will correct this comment as you suggest when there is any chance.
> The phrase "which can be not deoptimized in time." is unclear. Are we racing with deoptimization?
Yes, this comment can be not fully correct as you noted.
I do not fully understand optimization vs deoptimization mechanisms. I've already spent a lot of time trying to isolate this deoptimization issue but still need to continue this work in 23. Good news is that it can be reliably reproducible but only with a full run any of 4-6 tier. It is not reproducible locally yet.
My understanding is that the deoptimization needs some time to happen. We mark frames as needed to deoptimize and they are really deoptimized upon return of the execution control. However, there can be some subtle details depending on the execution path. There can be more then one bug in this area.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16961#discussion_r1417929323
More information about the serviceability-dev
mailing list