RFR: 8364434: Inconsistent BufferedContext state after GC [v5]
Nikita Gubarkov
ngubarkov at openjdk.org
Tue Aug 12 17:16:12 UTC 2025
On Tue, 12 Aug 2025 15:25:03 GMT, Alexander Zvegintsev <azvegint at openjdk.org> wrote:
>> Nikita Gubarkov has updated the pull request incrementally with one additional commit since the last revision:
>>
>> 8364434: Inconsistent BufferedContext state after GC
>>
>> Skip the test if Color was not GC'ed
>
> test/jdk/java/awt/ColorClass/WeakColorTest.java line 39:
>
>> 37: * @summary Check that garbage-collecting Color before accelerated painting is complete does not cause artifacts.
>> 38: * @library /test/lib
>> 39: * @run main/othervm -Xms16m -Xmx16m WeakColorTest
>
> I tried 3 different pipelines on Linux:
>
>
> * @run main/othervm -Xms16m -Xmx16m -Dsun.java2d.opengl=false -Dsun.java2d.xrender=false WeakColorTest
> * @run main/othervm -Xms16m -Xmx16m -Dsun.java2d.opengl=true -Dsun.java2d.xrender=false WeakColorTest
> * @run main/othervm -Xms16m -Xmx16m -Dsun.java2d.opengl=false -Dsun.java2d.xrender=true WeakColorTest // default
>
>
> OGL is the only one using the `BufferedContext`.
> It passes on SW, and OGL pipelines, the test is skipped on Xrender (the default pipeline).
> The results are the same with or without the fix.
>
> As we know that the test is always skipped on Linux on the default pipeline, shouldn't we just just do not run it with ` @requires (os.family != "linux")` to save some CI resources?
Although the issues are theoretically possible on any platform when using `BufferedContext`, in practice it is only known to reproduce on Metal.
So if we consider only known scenarios, we could as well limit it to macOS. If we consider a theoretical regression scenario, having it on every platform could also be helpful (but not with default XRender mode on Linux of course).
But having a non-accelerated pipeline on Linux by default may not be permanent either - when we finish our ongoing Vulkan work under Wakefield, we could eventually make it default. So maybe just leave it for all platforms, wdyt?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26576#discussion_r2270598793
More information about the client-libs-dev
mailing list