Hi David,
Sorry for the lack of context.
I was running jvmti tests (tonga nsk.jvmti) with full jvmti trace on,
which is not something we normally do.
I don't have the full history here and I do not know how often people
use jvmti trace.
But my understanding is that this can have been broken for a long time.
I did not dig any deeper. (most of the file is from duke)
/Robbin
On 04/17/2016 12:22 PM, David Holmes wrote:
Hi Robbin,
Can you clarify here and/or in the bug report exactly what it was that
changed to cause this crash. It seems the original code expects
"object" to be a class, while it is actually an instance that has a
class.
Thanks,
David
On 13/04/2016 3:50 PM, Robbin Ehn wrote:
Hi all,
Please review this bug fix.
Bug: https://bugs.openjdk.java.net/browse/JDK-8154064
Test with tonga. (the 5 crashed tonga test no longer crashes)
Thanks!
/Robbin
diff -r 4823056a5bbd src/share/vm/prims/jvmtiExport.cpp
--- a/src/share/vm/prims/jvmtiExport.cpp Tue Apr 12 09:08:48 2016
+0000
+++ b/src/share/vm/prims/jvmtiExport.cpp Wed Apr 13 07:39:50 2016
+0200
@@ -2260,7 +2260,7 @@
if (env->is_enabled(JVMTI_EVENT_VM_OBJECT_ALLOC)) {
EVT_TRACE(JVMTI_EVENT_VM_OBJECT_ALLOC, ("JVMTI [%s] Evt vmobject
alloc sent %s",
JvmtiTrace::safe_get_thread_name(thread),
- object==NULL? "NULL" :
java_lang_Class::as_Klass(object)->external_name()));
+ object==NULL? "NULL" :
object->klass()->external_name()));
JvmtiVMObjectAllocEventMark jem(thread, h());
JvmtiJavaThreadEventTransition jet(thread);