RFR (S): 8239895: assert(_stack_base != 0LL) failed: Sanity check

Daniel D. Daugherty daniel.daugherty at oracle.com
Tue Mar 31 14:26:56 UTC 2020


On 3/31/20 1:18 AM, David Holmes wrote:
> Bug: https://bugs.openjdk.java.net/browse/JDK-8239895
> webrev: http://cr.openjdk.java.net/~dholmes/8239895/webrev/

src/hotspot/cpu/aarch64/frame_aarch64.cpp
     No comments.

src/hotspot/cpu/arm/frame_arm.cpp
     No comments.

src/hotspot/cpu/ppc/frame_ppc.cpp
     No comments.

src/hotspot/cpu/s390/frame_s390.cpp
     No comments.

src/hotspot/cpu/x86/frame_x86.cpp
     No comments.

src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.cpp
     No comments.

src/hotspot/os_cpu/solaris_x86/os_solaris_x86.cpp
     No comments.

src/hotspot/share/runtime/thread.cpp
     No comments (8241043 backout).

src/hotspot/share/runtime/thread.hpp
     No comments (new func and 8241043 backout).


Thumbs up.

More below...


> Prior to JDK-8238988 there were uses of stack_base() which checked it 
> was initialized, and there was a raw use of _stack_base in 
> on_local_stack() that did not need it to be initialized (because it 
> may not be). After JDK-8238988 both cases call is_in_stack_range() 
> which uses stack_base() and so asserts that the stack base is 
> initialized in all cases. This leads to the assertion failures when 
> the _stack_base is not initialised. The fix has three parts:
>
> 1. Rename is_in_full_stack to is_in_full_stack_checked - as it checks 
> _stack_base is initialized via an assertion.
>
> 2. Add a new is_in_full_stack which doesn't use any assertions.
>
> 3. Update all the uses of stack_base() prior to JDK-8238988 that were 
> changed to call is_in_full_stack, to now call 
> is_in_full_stack_checked. There are not many of them. (The corollary 
> to that is that all old calls to on_local_stack() call the new 
> unchecked is_in_full_stack.)
>
> Here's the webrev for JDK-8238988 for comparison if desired:
>
> http://cr.openjdk.java.net/~dholmes/8238988/webrev/

The above link doesn't work. I used this one:

http://cr.openjdk.java.net/~dholmes/8238988/webrev.v3/

>
> I also backed out the assertion changes that I made under:
>
> https://bugs.openjdk.java.net/browse/JDK-8241043
>
> as they were failing due to the use of get_thread_name(). I've filed a 
> separate RFE for that issue:
>
> https://bugs.openjdk.java.net/browse/JDK-8241403
>
> Testing: tiers 1 - 3

The test failures that we've been seeing are happening in Tier5 and Tier6.

Dan


>
> Thanks,
> David
>



More information about the hotspot-runtime-dev mailing list