# HG changeset patch # User coleenp # Date 1450901259 0 # Node ID fc89375d788da7c53649bd7d8d4ac8c06d388301 # Parent ce4b5303a81358292216fc2672a02b2d42ad932a 8146011: sun/management/jmxremote/bootstrap/CustomLauncherTest crash at assert(stack_size) Summary: We were setting stack_overflow_limit before initialization completed which may change the stack base for some solaris systems with unlimited stack Reviewed-by: goetz, hseigel, gthornbr diff -r ce4b5303a813 -r fc89375d788d hotspot/src/share/vm/runtime/thread.cpp --- a/hotspot/src/share/vm/runtime/thread.cpp Wed Dec 23 13:12:15 2015 +0300 +++ b/hotspot/src/share/vm/runtime/thread.cpp Wed Dec 23 20:07:39 2015 +0000 @@ -306,10 +306,6 @@ void Thread::record_stack_base_and_size() { set_stack_base(os::current_stack_base()); set_stack_size(os::current_stack_size()); - if (is_Java_thread()) { - ((JavaThread*) this)->set_stack_overflow_limit(); - ((JavaThread*) this)->set_reserved_stack_activation(stack_base()); - } // CR 7190089: on Solaris, primordial thread's stack is adjusted // in initialize_thread(). Without the adjustment, stack size is // incorrect if stack is set to unlimited (ulimit -s unlimited). @@ -318,6 +314,11 @@ // set up any platform-specific state. os::initialize_thread(this); + // Set stack limits after thread is initialized. + if (is_Java_thread()) { + ((JavaThread*) this)->set_stack_overflow_limit(); + ((JavaThread*) this)->set_reserved_stack_activation(stack_base()); + } #if INCLUDE_NMT // record thread's native stack, stack grows downward MemTracker::record_thread_stack(stack_end(), stack_size());