Hi David,
> Now why would a GCTaskThread being executing code that accesses
> JvmtiRawMonitors? Are we in some kind of event callback?
I believe so. The test registers the following callbacks:
callbacks.GarbageCollectionStart = &GarbageCollectionStart;
callbacks.GarbageCollectionFinish = &GarbageCollectionFinish;
And these callback functions use jvmti->RawMonitorEnter.
Note that the spec for "Raw Monitor Enter" allows this:
"This function may be called from the callbacks to the Heap iteration
functions, or from the event handlers for the GarbageCollectionStart,
GarbageCollectionFinish, and ObjectFree events."
> Is there any more stack? What is that dll?
The dll belongs to the test. I guess it was built without debug info so there's
no native stack trace available.
> Can you tell me what test this was and how to reproduce?
make run-test TEST="vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t001"
I haven't tried if it can be reproduced well. May be sporadic.
At least, I can confirm that the following comment is true 😊
// FIXME: this is broken - raw_enter only accepts the VMThread
Best regards,
Martin