-
Notifications
You must be signed in to change notification settings - Fork 737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JDK24 serviceability_jvmti_j9_0_FAILED serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java RuntimeException: CheckHiddenFrames failed! #20541
Comments
Issue Number: 20541 |
@thallium Please take a look at this |
I'll look into this. |
The author of the test stated that the |
Yes please add that |
@babsingh we also need to skip JvmtiMountTransition frames in |
|
Yeah for sure, I didn't notice |
Actually we might have to change the stack walker code. The current problem is that decrementing |
Definitely not. Can you please point me at the iterator code? |
https://github.com/eclipse-openj9/openj9/blob/master/runtime/jvmti/jvmtiHelpers.cpp#L2089 If we don't want to modify stack walker code, I think we will need to call stack walker twice to skip the correct number of frames. |
Can you please summarize the issue as you see it and the 2 walk solution you are proposing? |
The issue is that frames with A solution I can think of without modifying stack walker code is to firstly walk the stack with |
I haven't looked at this in detail, but above you mention the issue that counts are adjusted before the callback fires. Can you use this knowledge in the callback? If you really know what you're doing, you could adjust the count values in the callback, though this would generally be discouraged. Niote that skipCount applies only to the top frames on the stack, so I doubt it could be used to skip transition frames that I assume aren't necessarily all on top of stack. |
I don't understand why it would be difficult to skip the marked frames. |
This is only part of the problem. The bigger issue is that if
If the skip count is set to 2, we will get Frame 2 as result but the expected frame is Frame 3. I don't think we can do anything in the callback to account for this because the Transition Frame is simply skipped without calling the callback. So we either have to do a first walk to know the number of transition frames and add it to the skip count of the second walk (assuming transition frames are always on the top of the stack, @babsingh can you confirm?), or handle transition frames in stack walker. |
Ah, so you think the skipping should only take unmarked frames into account. The callback will not fire for skipped frames, so I begin to see the issue. |
An obvious solution would be to set skipCount to 0 and manage the frames yourself in the callback. |
In general, skipCount is used to remove implementation-specific frames from consideration during stack walks (for example, skipping the top frame which is the native implementing whatever is doing the walking). |
Failure link
From an internal build(
ubu22-aarch64-5
):Rerun in Grinder - Change TARGET to run only the failed test targets.
Optional info
Failure output (captured from console output)
50x internal grinder - all failed
The text was updated successfully, but these errors were encountered: