8386085: Livelock in AbstractQueuedSyncronizer.cleanQueue() when multiple threads do tryAcquire() with a short timeout and no permits available#624
Conversation
…iple threads do tryAcquire() with a short timeout and no permits available Reviewed-by: dl, alanb
|
👋 Welcome back kshiroko! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
This backport pull request has now been updated with issue from the original commit. |
|
|
|
/approval request This PR fixes a long-standing bug in java.util.concurrent which leads to a livelock in all participating threads with 100% CPU consumption. Tested with reproducer and j.u.c. test on major platforms and CPUs. |
|
@kirill-shirokov |
|
Hi @kirill-shirokov |
|
Hi @GoeLin, here's backports for jdk27, jdk26u: And I created a backport for jdk27u just in case (I can delete either one): |
Testing done:
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk25u-dev.git pull/624/head:pull/624$ git checkout pull/624Update a local copy of the PR:
$ git checkout pull/624$ git pull https://git.openjdk.org/jdk25u-dev.git pull/624/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 624View PR using the GUI difftool:
$ git pr show -t 624Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk25u-dev/pull/624.diff
Using Webrev
Link to Webrev Comment