[9] RFR(S): 8040085: dtrace/jsdt tests crash on solaris. found an unadvertised bad scavengable oop in the code cache

Roland Westrelin roland.westrelin at oracle.com
Fri Apr 25 07:59:43 UTC 2014


> 7017732 was pushed 3 years ago. What does this show up now? Also, CodeCache::add_scavenge_root_nmethod() is required if the nmethod embeds oops but I don’t see where in SharedRuntime::generate_dtrace_nmethod() we have constant oops.

I took a look and found that the oop comes from:

// Add the class loader of Method* for the nmethod itself
append_oop_references(&oops, mh->method_holder());

in finalize_oop_references() that is called from nmethod::new_dtrace_nmethod()

So Albert’s fix look good to me.

I also noticed this in AdapterHandlerLibrary::create_dtrace_nmethod():
  if (PrintCompilation) {
    ttyLocker ttyl;
    tty->print("---   n%s  ");

%s but no argument passed. Can you clean that up as well, Albert?

Roland.


More information about the hotspot-compiler-dev mailing list