[foreign] RFR 8209151: StdLibTest fails intermittently

Sundararajan Athijegannathan sundararajan.athijegannathan at oracle.com
Fri Aug 10 13:28:48 UTC 2018


The changes look good.

PS. I stress tests earlier round of patch - which did resulted in NPE at 
times. With the current patch, I no longer see NPE (on Mac) in 
multi-round stress test of StdLibTest

-Sundar

On 10/08/18, 4:23 PM, Maurizio Cimadamore wrote:
> http://cr.openjdk.java.net/~mcimadamore/panama/codecache-lock-v2/
>
> Maurizio
>
>
> On 10/08/18 07:37, Sundararajan Athijegannathan wrote:
>> I get 404. Is the URL correct?
>>
>> -Sundar
>>
>> On 10/08/18, 5:25 AM, Maurizio Cimadamore wrote:
>>> New revision:
>>>
>>> http://cr.openjdk.java.net/~mcimadamore/panama/codecache-lock_v2/
>>>
>>> I realized that there was another bug lurking: in NativeInvoker we 
>>> try to hold onto the UpcallHandler objects to prevent early 
>>> deallocation (via the UpcallStub's Cleaner). We do so by stashing 
>>> all the created handlers into an array list, which is held in a 
>>> local variable. Unfortunately, JIT optimization can cause this list 
>>> to be collected before the native method invocation is even started 
>>> - and this can trigger spurious NPE from Java code.
>>>
>>> I've fixed this by adding a reachability fence on the list (thx John 
>>> for the neat trick!).
>>>
>>> Maurizio
>>>
>>>
>>> On 08/08/18 19:07, Maurizio Cimadamore wrote:
>>>> The logic for retrieving and clearing native code blobs is race-y - 
>>>> it is sometimes possible for the binder code to retrieve a stale 
>>>> code blob that has just been deleted by the cleaner thread. This 
>>>> causes Hotspot crashes (around NativeInvoker::free_upcall_stub) 
>>>> and, sometimes, Java NPEs too in that area.
>>>>
>>>> The fix is to guard the code that accesses the CodeCache under the 
>>>> corresponding lock (this idiom is present elsewhere in the hotspot 
>>>> code, but I missed it the first time around).
>>>>
>>>> With the locking logic in place, I've been able to run the test 60 
>>>> consecutive times w/o failures (w/o the patch I'd get a failure 
>>>> within 10 attempts).
>>>>
>>>> Webrev:
>>>>
>>>> http://cr.openjdk.java.net/~mcimadamore/panama/codecache-lock/
>>>>
>>>> Maurizio
>>>>
>>>
>


More information about the panama-dev mailing list