-
Bug
-
Resolution: Fixed
-
P4
-
21, 22
-
b27
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8334655 | 21.0.5-oracle | Harshitha Onkar | P4 | Resolved | Fixed | b01 |
JDK-8334839 | 21.0.5 | Martin Doerr | P4 | Resolved | Fixed | b01 |
JDK-8335928 | 17.0.13-oracle | Harshitha Onkar | P4 | Resolved | Fixed | b02 |
JDK-8337090 | 17.0.13 | Matthias Baesken | P4 | Resolved | Fixed | b01 |
JDK-8337962 | 11.0.26-oracle | Harshitha Onkar | P4 | Resolved | Fixed | b01 |
JDK-8340606 | 8u441 | Renjith Kannath Pariyangad | P4 | Resolved | Fixed | b01 |
The current implementation of the screencast robot has various synchronization
issues in its implementation with the native libpipewire API which leads to
cpu burn spinning and occasional hanging in the native
Java_sun_awt_screencast_ScreencastHelper_getRGBPixelsImpl
function when trying to run jtreg swing tests. This causes related tests to
timeout and fail.
This is easily reproducible on a stock Fedora 38 when running something like
make test TEST="javax/swing/plaf/nimbus/TestNimbusBGColor.java" JTREG="JAVA_OPTIONS=-Dawt.robot.screenshotMethod=dbusScreencast -Dawt.robot.screenshotDebug=true"
which does succeed sometimes but most of the time just timeouts and fails.
The root cause is that the synchronization for the libpipewire API thread loop
is not correctly implemented in the screencast robot native code, specifically
around the pw_thread_loop_wait API and associated condition variables. In fact
it is rather surprising it works at all sometimes in the current implementation.
There will be PR to address these issues that can hopefully highlight them more
clearly in the code so the reason for filing this issue is to get that PR going.
- backported by
-
JDK-8334655 awt screencast robot spin and sync issues with native libpipewire api
- Resolved
-
JDK-8334839 awt screencast robot spin and sync issues with native libpipewire api
- Resolved
-
JDK-8335928 awt screencast robot spin and sync issues with native libpipewire api
- Resolved
-
JDK-8337090 awt screencast robot spin and sync issues with native libpipewire api
- Resolved
-
JDK-8337962 awt screencast robot spin and sync issues with native libpipewire api
- Resolved
-
JDK-8340606 awt screencast robot spin and sync issues with native libpipewire api
- Resolved
- relates to
-
JDK-8321176 [Screencast] make a second attempt on screencast failure
- Resolved
- links to
-
Commit openjdk/jdk21u-dev/ca239743
-
Commit openjdk/jdk/c17b8cfa
-
Commit(master) openjdk/jdk17u-dev/3d39e853
-
Review openjdk/jdk21u-dev/779
-
Review openjdk/jdk/16794
-
Review(master) openjdk/jdk17u-dev/2734