RFR (XS) 6471769: Error: assert(_cur_stack_depth == count_frames(), "cur_stack_depth out of sync")
david.holmes at oracle.com
Mon Feb 3 04:16:39 PST 2014
On 1/02/2014 12:58 PM, serguei.spitsyn at oracle.com wrote:
> Please, review the fix for:
> Open webrev:
> There is a general issue in the suspend equivalent condition mechanism:
> Two subsequent calls to the JvmtiEnv::is_thread_fully_suspended() may
> return different results:
> - 1-st: true
> - 2-nd: false
> This more generic suspend equivalent issue is covered by another bug:
> The bug to fix in this review is a specific manifestation of the 6280037
> in the JVMTI GetFrameCount() that has a big impact on the SQE nightly.
> It is on the Test Stabilization radar (as well as the 6280037).
> There are many tests intermittently failing because of this.
> The webrev for review is a one-liner work around the 6280037 for the
> The JVMTI GetFrameCount() spec tells:
> "If this function is called for a thread actively executing
> bytecodes (for example,
> not the current thread and not suspended), the information
> returned is transient."
> So, it is Ok to call the GetFrameCount() for non-suspended target
> To achieve safety, the frame count for non-suspended threads is
> calculated at a safepoint.
> It should be Ok and more safe to do the same for suspended threads as
> There is no big performance impact because it is already on a slow path.
> It is still important to avoid safepointing when the target thread is
This sounds completely reasonable - Reviewed.
I can't check at the moment whether VM_GetFrameCount properly checks for
a live target thread?
> The bug 6280037 should go out of the Test Stabilization radar (remove
> the svc-nightly label)
> as the most of the impacted tests are covered by the 6471769.
> In progress: nsk.jvmti, nsk.jdi, nsk.jdwp, impacted JTreg tests
More information about the hotspot-dev