[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