[OpenJDK 2D-Dev] bug 8146238 - Java Queue Flusher on MacOS

Philip Race philip.race at oracle.com
Wed Sep 4 23:57:56 UTC 2019


It should. Although it hasn't exactly baked in 14 yet.

-phil.

On 9/4/19, 4:42 PM, Bill York wrote:
> Thanks, it looks like you made the change here:
>
> https://hg.openjdk.java.net/jdk/client/rev/07556f8cd819
>
> Do you know if this change will work with Java 8?
>
> Bill
>
> On 8/24/19, 6:22 PM, "Sergey Bylokhov"<Sergey.Bylokhov at oracle.com>  wrote:
>
>      I'll push it soon
>
>      On 8/24/19 10:27 am, Phil Race wrote:
>      >  Sergey,
>      >
>      >  Since you proposed this version of the fix, do you want to push it ?
>      >
>      >  -phil.
>      >
>      >
>      >  On 8/24/19 5:09 AM, Alexey Ushakov wrote:
>      >>  Hi Sergey,
>      >>
>      >>  The proposed solution looks good for me.
>      >>
>      >>  Best Regards,
>      >>  Alexey
>      >>
>      >>
>      >>>  On 12 Aug 2019, at 12:29, Sergey Bylokhov<Sergey.Bylokhov at oracle.com>  wrote:
>      >>>
>      >>>  Hi, Phil, Alexey.
>      >>>
>      >>>  I recheck this bug, and here is some of my thought:
>      >>>  1. We have two java classes:
>      >>>      - GLX/CGL/WGL/GraphicsConfig which maintain the native structure WGL/GLX/CGL/GraphicsConfigInfo
>      >>>      - GLX/CGL/WGL/SurfaceData which maintain the native structure CGL/GLXS/WGL/SDOps
>      >>>  2. The native structures should be disposed of by the "Disposer" machinery
>      >>>  3. The native part XXXSDOps has a pointer to the CGL/GraphicsConfigInfo
>      >>>  4. To prevent the usage of dangling pointer to the XXXGraphicsConfigInfo, the java part of XXXSDOps has a strong reference to the java part of XXXGraphicsConfigInfo
>      >>>
>      >>>  The assumption at point 4 is not correct, it is possible that the native part of the XXXGraphicsConfigInfo could be disposed before XXXSDOps, and we will get a crash when we will try to dispose the XXXSDOps.
>      >>>
>      >>>  Long time ago when it was implemented it works fine, because we never dispose the graphics configs, we read them on-start and use till the end of the application, even now we use this approach on Linux(JDK-8076313).
>      >>>
>      >>>  So this bug existed on Linux, Windows and migrated to the macOS platform, but only on macOS and windows we can get a crash.
>      >>>
>      >>>
>      >>>  I have rechecked the usage of the pointer from XXXSDOps to XXXGraphicsConfigInfo which caused a crash and think that we can get rid it, but it will required to change bunch of code on all platforms, so as a minimal fix I suggest this one:
>      >>>  http://cr.openjdk.java.net/~serb/8146238/webrev.00
>      >>>  Just to store the reference to the GC till the moment it will not be used by the SurfaceData.
>      >>>
>      >>>
>      >>>  On 8/7/19 10:56 am, Phil Race wrote:
>      >>>>  Sergey,
>      >>>>  This fix seems OK to me. Can you please do whatever re-evaluation you meant
>      >>>>  as I'd like to pull it into jdk/client for Alexey (since he does not have current commit rights).
>      >>>>  -phil.
>      >>>>  On 3/8/18 2:59 PM, Sergey Bylokhov wrote:
>      >>>>>  Hi, Bill.
>      >>>>>  Thank you for confirmation.
>      >>>>>
>      >>>>>  On 08/03/2018 14:08, Bill York wrote:
>      >>>>>>  3. Is there a plan to get this bug fix into the JRE distributed by Oracle?
>      >>>>>  I will reevaluate the fix for inclusion in jdk11.
>      >>>>>
>      >>>>>
>      >>>
>      >>>  -- 
>      >>>  Best regards, Sergey.
>      >
>
>
>      -- 
>      Best regards, Sergey.
>
>
>


More information about the 2d-dev mailing list