-
Bug
-
Resolution: Fixed
-
P3
-
17, 21, 22, 23
-
Tip:
```
[0.753s][info][gc,init] Version: 23-internal-adhoc.kdnilsen.jdk.2-1-2024 (release)
``````
commit dafc3632766ca5a268d88c742f416da29cecdea9 (HEAD -> master, origin/master, origin/HEAD)
Merge: 441487cb21a d3c3194ac34
Author: Kelvin Nilsen <kdnilsen@amazon.com>
Date: Thu Feb 1 20:31:26 2024 -0700Merge branch 'openjdk:master' into master
```
Tip: ``` [0.753s] [info] [gc,init] Version: 23-internal-adhoc.kdnilsen.jdk.2-1-2024 (release) ``` ``` commit dafc3632766ca5a268d88c742f416da29cecdea9 (HEAD -> master, origin/master, origin/HEAD) Merge: 441487cb21a d3c3194ac34 Author: Kelvin Nilsen <kdnilsen@amazon.com> Date: Thu Feb 1 20:31:26 2024 -0700 Merge branch 'openjdk:master' into master ```
-
b11
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8332658 | 22.0.2 | Liang Mao | P3 | Resolved | Fixed | b08 |
JDK-8335164 | 21.0.5 | Liang Mao | P3 | Resolved | Fixed | b01 |
JDK-8339461 | 17.0.14 | Xiaolong Peng | P3 | Resolved | Fixed | b01 |
```
[921.732s][info ][handshake ] Handshake "HandshakeForDeflation", Targeted threads: 2017, Executed by requesting thread: 16, Total completion time: 193294197991 ns
```
The reproducer is a specific configuration of the public Extremem GC benchmark, which can be downloaded from https://github.com/corretto/heapothesys
```
echo Run TradiShen tip with memory size 26g with 4s customer period
>&2 echo Run TradiShen tip with memory size 26g with 4s customer period
~/github/jdk.2-1-2024/build/linux-x86_64-server-release/jdk/bin/java \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseTransparentHugePages \
-XX:-ShenandoahPacing \
-XX:+AlwaysPreTouch -XX:+DisableExplicitGC -Xms26g -Xmx26g \
-XX:+UseShenandoahGC \
-Xlog:"gc*=info,ergo" \
-Xlog:vmthread=trace -Xlog:handshake*=debug \
-Xlog:safepoint=trace -Xlog:safepoint=debug -Xlog:safepoint=info \
-XX:+UnlockDiagnosticVMOptions \
-jar ~/github/heapothesys/Extremem/target/extremem-1.0-SNAPSHOT.jar \
-dInitializationDelay=45s -dDictionarySize=16000000 -dNumCustomers=28000000 \
-dNumProducts=64000 -dCustomerThreads=2000 -dCustomerPeriod=4s -dCustomerThinkTime=1s \
-dKeywordSearchCount=4 -dServerThreads=5 -dServerPeriod=5s -dProductNameLength=10 \
-dBrowsingHistoryQueueCount=5 \
-dSalesTransactionQueueCount=5 \
-dProductDescriptionLength=64 -dProductReplacementPeriod=25s -dProductReplacementCount=5 \
-dCustomerReplacementPeriod=30s -dCustomerReplacementCount=1000 -dBrowsingExpiration=1m \
-dPhasedUpdates=true \
-dPhasedUpdateInterval=60s \
-dSimulationDuration=20m -dResponseTimeMeasurements=100000
```
An annotated log of an instrumented execution shows that the outer loop of VM_handshakeAllThreads::doit() executes 186 times. The last iteration finally succeeds to perform:
```
[921.726s][debug][handshake,task ] Operation: HandshakeForDeflation for thread 0x00007f24bc104630, is_vm_thread: true, completed in 44 ns
```
on a thread that had identified as _not_safe on previous iteration.
I am not yet sufficiently confident to conclude whether this a problem with the implementation of doit(), or is the fault of the HandshakeForDeflation implementation which must be self-identifying as _not_safe for too long.
- backported by
-
JDK-8332658 Shenandoah: ShenandoahLock should allow blocking in VM
- Resolved
-
JDK-8335164 Shenandoah: ShenandoahLock should allow blocking in VM
- Resolved
-
JDK-8339461 Shenandoah: ShenandoahLock should allow blocking in VM
- Resolved
- relates to
-
JDK-8326717 Disable stringop-overflow in shenandoahLock.cpp
- Resolved
-
JDK-8331405 Shenandoah: Optimize ShenandoahLock with TTAS
- Resolved
-
JDK-8331411 Shenandoah: Reconsider spinning duration in ShenandoahLock
- Resolved
- links to
-
Commit openjdk/jdk21u-dev/ad5e16f6
-
Commit openjdk/jdk22u/ae8dae9d
-
Commit openjdk/jdk/492e8bf5
-
Commit(master) openjdk/jdk17u-dev/dc69e059
-
Review openjdk/jdk21u-dev/560
-
Review openjdk/jdk22u/192
-
Review openjdk/jdk/17813
-
Review(master) openjdk/jdk17u-dev/2797