<AWT Dev> [10][JDK-8175015] FileSystemView.isDrive(File) memory leak on "C:\" file reference

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Wed Aug 30 10:45:44 UTC 2017


ok..looks fine.

Regards
Prasanta
On 8/30/2017 2:41 PM, Krishna Addepalli wrote:
>
> Hi Prasanta,
>
> Even in the previous case, it falls through and returns false. The 
> same behavior is maintained with the current code as well.
>
> Thanks,
>
> Krishna
>
> *From:*Prasanta Sadhukhan
> *Sent:* Wednesday, August 30, 2017 2:00 PM
> *To:* Krishna Addepalli <krishna.addepalli at oracle.com>
> *Cc:* awt-dev at openjdk.java.net
> *Subject:* Re: <AWT Dev> [10][JDK-8175015] 
> FileSystemView.isDrive(File) memory leak on "C:\" file reference
>
> One thing, if sf.isFileSystem() is true and sf.parent is NULL, then in 
> previous case, it falls through but with this fix, it returns false. 
> Can you clarify?
>
> Regards
> Prasanta
>
> On 8/30/2017 11:42 AM, Sergey Bylokhov wrote:
>
>     Ok, looks fine.
>
>       
>
>     -----krishna.addepalli at oracle.com <mailto:krishna.addepalli at oracle.com>  wrote:
>
>       
>
>         Hi Sergey,
>
>           
>
>         I checked with Thread.MAX_PRIORITY - 1, and found that it still leads
>
>         to OOM exception, although it takes longer to get to that condition.
>
>           
>
>         Thanks,
>
>         Krishna
>
>           
>
>         -----Original Message-----
>
>         From: Sergey Bylokhov
>
>         Sent: Tuesday, August 29, 2017 6:19 AM
>
>         To: Krishna Addepalli<krishna.addepalli at oracle.com>
>         <mailto:krishna.addepalli at oracle.com>
>
>         Cc:awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
>
>         Subject: Re: <AWT Dev> [10][JDK-8175015] FileSystemView.isDrive(File)
>
>         memory leak on "C:\" file reference
>
>           
>
>         Hi, Krishna.
>
>         Did you check other priorities like Thread.MAX_PRIORITY-1/2/3?
>
>           
>
>         -----krishna.addepalli at oracle.com <mailto:krishna.addepalli at oracle.com>  wrote:
>
>           
>
>             Hi Sergey,
>
>               
>
>             The root cause for the OOM exception is due to mismatched thread
>
>             priority. When folders are listed, each folder/file is associated
>
>         with
>
>             a COM object, that is wrapped by the Java ShellFolder object. Now,
>
>             when the ShellFolder object needs to be deleted, the underlying COM
>
>           
>
>             object should be released in ComThread, whose priority is normal.
>
>             Whereas, the java2D.Disposer thread runs at highest priority, but it
>
>           
>
>             is unable to clean up the piled up objects, which eventually leads
>
>         to
>
>             this exception.
>
>               
>
>             I have added a fix for this as well, and created a new webrev as
>
>             below:
>
>               
>
>             http://cr.openjdk.java.net/~pkbalakr/Krishna/8175015/webrev01/
>             <http://cr.openjdk.java.net/%7Epkbalakr/Krishna/8175015/webrev01/>
>
>               
>
>             Thanks,
>
>             Krishna
>
>               
>
>             -----Original Message-----
>
>             From: Sergey Bylokhov
>
>             Sent: Wednesday, August 9, 2017 5:16 AM
>
>             To: Krishna Addepalli<krishna.addepalli at oracle.com>
>             <mailto:krishna.addepalli at oracle.com>;
>
>             awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
>
>             Subject: Re: <AWT Dev> [10][JDK-8175015]
>
>         FileSystemView.isDrive(File)
>
>             memory leak on "C:\" file reference
>
>               
>
>             Hi, Krishna.> The problem is internally,
>
>             Win32ShellFolderManager2.java, the function
>
>                 "isFileSystemRoot" is called, which lists the contents of all the
>
>             root
>
>                 drives, in addition to including them. It also includes the hidden
>
>           
>
>                 files. For each file present, it is wrapped with a
>
>             "Win32ShellFolder2"
>
>                 object. So, for each query, it will list the files in the drives,
>
>             and
>
>                 throws them away, which is leading to both memory consumption as
>
>             well
>
>                 as slow performance.
>
>               
>
>             If for each query we list the files in the drive and *throws* all of
>
>           
>
>             them away, then why(and where) we have a memory leak and as a result
>
>           
>
>             OOM.
>
>               
>
>               
>
>             --
>
>             Best regards, Sergey.
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20170830/eabdf775/attachment-0001.html>


More information about the awt-dev mailing list