It looks like an unnecessary unlock:
// CodeCache is full, disable compilation
// Ought to log this but compile log is only per compile thread
// and we're some non descript Java thread.
MutexUnlocker mu(AdapterHandlerLibrary_lock);
CompileBroker::handle_full_code_cache();
}
We're not actually holding the AdapterHandlerLibrary_lock at this point. I think there's a problem in CompileBroker::handle_full_code_cache as well since it seems to assume it's only called from a compiler thread but create_native_wrapper is executed by whoever calls it.
tom
On Aug 11, 2010, at 10:05 AM, Vladimir Kozlov wrote:
nsk/stress/jck60/jck60021
http://sqeweb.sfbay.sun.com/nfs/results/vm/gtee/JDK7/NIGHTLY/VM/2010-08-10/Comp_Baseline/vm/solaris-sparc/client/comp/solaris-sparc_vm_client_comp_nsk.stress.testlist/ResultDir/jck60021/hs_err_pid2677.log
# Internal Error (/tmp/jprt/P1/B/191642.never/source/src/share/vm/runtime/mutex.cpp:965), pid=2677, tid=399
# assert(_owner == Thread::current()) failed: invariant
#