diff -r 6470230caf2a -r 9ffa0d7ed932 src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp --- a/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp Mon Jun 19 22:49:52 2017 +0000 +++ b/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp Mon Jun 26 02:04:40 2017 -0700 @@ -44,9 +44,8 @@ assert(this->is_Java_thread(), "must be JavaThread"); JavaThread* jt = (JavaThread *)this; - // last_Java_frame is always walkable and safe use it if we have it - - if (jt->has_last_Java_frame()) { + // There is small window where last_Java_frame is not walkable or safe + if (jt->has_last_Java_frame() && jt->frame_anchor()->walkable()) { *fr_addr = jt->pd_last_frame(); return true; }