On Tue, 18 Mar 2025 09:11:00 GMT, Dmitry Chuyko <dchu...@openjdk.org> wrote:

>> Please review a tiny fix in the ForkJoinPool. Since JDK 9 (JDK-8134852 [1]) 
>> in one case when TC subfield in ctl field is decremented, the applied 
>> masking (UMASK, upper bits) may not preserve neighbor RC subfield sometimes. 
>> In JDKs prior to 19 FJP may stop executing tasks, which requires a long 
>> running application restart [2]. Since 19 it is even harder to reproduce 
>> because of the separate parallelism field.
>> 
>> The fix is to replace 'UMASK & (c - TC_UNIT)'  with '(c & RC_MASK) | ((c - 
>> TC_UNIT)  & TC_MASK)' which preserves the RC part of the compareAndSetCtl() 
>> candidate argument. On 17u and 11u that repairs known tests and 
>> applications. This PR is for the mainline, and I intend to backport it to 
>> 21u, 17u and 11u.
>> 
>> [1] https://bugs.openjdk.org/browse/JDK-8134852
>> [2] https://bugs.openjdk.org/browse/JDK-8330017
>
> Dmitry Chuyko has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Aligned with JDK-8319447

Marked as reviewed by alanb (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/24034#pullrequestreview-2698006904

Reply via email to