[crac] RFR: Prevent an assertion: Attempting to acquire lock PeriodicTask_lock... [v2]

Jan Kratochvil jkratochvil at openjdk.org
Mon Aug 21 17:17:25 UTC 2023


On Mon, 21 Aug 2023 10:00:44 GMT, Anton Kozlov <akozlov at openjdk.org> wrote:

>> Jan Kratochvil has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Move a part of wakeup_threads_in_timedwait() out of VM_Operation.
>>    - suggested by Anton Kozlov
>
> src/hotspot/share/runtime/crac.cpp line 299:
> 
>> 297:   Threads::java_threads_do(&wc);
>> 298: 
>> 299:   MonitorLocker ml(PeriodicTask_lock, Mutex::_no_safepoint_check_flag);
> 
> I see the problematic locking is performed during the safepoint. The code was added in https://github.com/openjdk/crac/pull/85. AFAICS it's enough to wake up all threads to make them recompute the current time. As more simple approach, would it be enough to move wakeup_threads_in_timedwait out from VM Operation?

Yes, you are right.

-------------

PR Review Comment: https://git.openjdk.org/crac/pull/106#discussion_r1300419734


More information about the crac-dev mailing list