[aarch64-port-dev ] 8153107: Unbalanced recursive locking

Andrey Petushkov andrey.petushkov at gmail.com
Wed Jun 13 17:26:08 UTC 2018


Ok, I shall I admit I did not dig deep enough. Yes, there is platform specifics which plays a role here. That is: all platforms except Oracle ARM (all bitness) and aarch32 fill-in stack lock’s DHW with result of same-stack-page-lock probe result. Which is always !=0 when failed. Oracle’s ARM and aarch32 do that conditionally, based on whether this test actually passes. Hence for the latter platforms the DHW in the stack lock really contains random value which occasionally can be 0, and being not rewritten (e.g. with markOopDesc::unused_mark(), aka 3) will indicate recursive stack lock for ::fast_unlock(). Not sure about those stack walkers mentioned in the comment in ::quick_enter(). So, right, it’s possible to fix the problem in the platform-specific code only. Leaving up to you to decide whether it’s proper design :)

Regards,
Andrey

> On 13 Jun 2018, at 18:17, Daniel D. Daugherty <daniel.daugherty at oracle.com> wrote:
> 
> Not at my fingertips, but I will look thru my archives.
> 
> Dan
> 
> 
> On 6/13/18 11:14 AM, Andrew Haley wrote:
>> Hi Dan,
>> 
>> Have you got any torture tests for recursive locking?
>> 
> 



More information about the aarch32-port-dev mailing list