[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] bug 8146238 - Java Queue Flusher on MacOS
From:       Sergey Bylokhov <Sergey.Bylokhov () oracle ! com>
Date:       2019-08-24 22:22:17
Message-ID: f2758c77-a367-b14b-8f41-00bfc09ca210 () oracle ! com
[Download RAW message or body]

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@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.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic