JDK-8241806 : The sun/awt/shell/FileSystemViewMemoryLeak.java is unstable
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 11,14,15
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows
  • CPU: generic
  • Submitted: 2020-03-29
  • Updated: 2024-12-13
  • Resolved: 2020-11-06
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 16
11.0.19Fixed 16 b24Fixed
Related Reports
Relates :  
Description
This test fails from time to time:

command: main -Xmx8m FileSystemViewMemoryLeak
reason: User specified action: run main/othervm -Xmx8m FileSystemViewMemoryLeak 
Mode: othervm [/othervm specified]
Additional options from @modules: --add-modules java.desktop --add-exports java.desktop/sun.awt.shell=ALL-UNNAMED
Timeout information:
Running jstack on process 30012
2020-03-29 13:20:08
Full thread dump Java HotSpot(TM) 64-Bit Server VM (15-internal+0-2020-03-28-2245528.serge... mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x0000015bff74cbd0, length=15, elements={
0x0000015be0cb3000, 0x0000015bfd0f4000, 0x0000015bfd0f6000, 0x0000015bfd10f800,
0x0000015bfd110800, 0x0000015bfd114000, 0x0000015bfd11e000, 0x0000015bfd124800,
0x0000015bfd131000, 0x0000015bfdb04000, 0x0000015bfdcd7000, 0x0000015bfdc3f800,
0x0000015bfdc13000, 0x0000015bfde23000, 0x0000015bfe2cd800
}

"main" #1 prio=5 os_prio=0 cpu=62.50ms elapsed=120.12s tid=0x0000015be0cb3000 nid=0x67f4 in Object.wait()  [0x00000027b9afe000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@15-internal/Native Method)
	- waiting on <0x00000000ff85ee00> (a java.lang.Thread)
	at java.lang.Thread.join(java.base@15-internal/Thread.java:1303)
	- locked <0x00000000ff85ee00> (a java.lang.Thread)
	at java.lang.Thread.join(java.base@15-internal/Thread.java:1371)
	at com.sun.javatest.regtest.agent.MainWrapper.main(MainWrapper.java:74)

"Reference Handler" #2 daemon prio=10 os_prio=2 cpu=0.00ms elapsed=120.11s tid=0x0000015bfd0f4000 nid=0x4fb4 waiting on condition  [0x00000027ba1ff000]
   java.lang.Thread.State: RUNNABLE
	at java.lang.ref.Reference.waitForReferencePendingList(java.base@15-internal/Native Method)
	at java.lang.ref.Reference.processPendingReferences(java.base@15-internal/Reference.java:241)
	at java.lang.ref.Reference$ReferenceHandler.run(java.base@15-internal/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=1 cpu=0.00ms elapsed=120.11s tid=0x0000015bfd0f6000 nid=0x3550 in Object.wait()  [0x00000027ba2fe000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@15-internal/Native Method)
	- waiting on <0x00000000ff864a88> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@15-internal/ReferenceQueue.java:155)
	- locked <0x00000000ff864a88> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@15-internal/ReferenceQueue.java:176)
	at java.lang.ref.Finalizer$FinalizerThread.run(java.base@15-internal/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 cpu=0.00ms elapsed=120.11s tid=0x0000015bfd10f800 nid=0x741c runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #5 daemon prio=5 os_prio=2 cpu=0.00ms elapsed=120.11s tid=0x0000015bfd110800 nid=0x7490 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #6 daemon prio=9 os_prio=0 cpu=0.00ms elapsed=120.11s tid=0x0000015bfd114000 nid=0x4e50 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #7 daemon prio=9 os_prio=2 cpu=296.88ms elapsed=120.11s tid=0x0000015bfd11e000 nid=0x2980 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #17 daemon prio=9 os_prio=2 cpu=78.13ms elapsed=120.11s tid=0x0000015bfd124800 nid=0x7134 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #22 daemon prio=9 os_prio=2 cpu=15.63ms elapsed=120.11s tid=0x0000015bfd131000 nid=0x4844 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #23 daemon prio=8 os_prio=1 cpu=0.00ms elapsed=120.09s tid=0x0000015bfdb04000 nid=0x74f4 in Object.wait()  [0x00000027ba9fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@15-internal/Native Method)
	- waiting on <0x00000000ff862278> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@15-internal/ReferenceQueue.java:155)
	- locked <0x00000000ff862278> (a java.lang.ref.ReferenceQueue$Lock)
	at jdk.internal.ref.CleanerImpl.run(java.base@15-internal/CleanerImpl.java:148)
	at java.lang.Thread.run(java.base@15-internal/Thread.java:832)
	at jdk.internal.misc.InnocuousThread.run(java.base@15-internal/InnocuousThread.java:134)

"Notification Thread" #24 daemon prio=9 os_prio=0 cpu=0.00ms elapsed=120.07s tid=0x0000015bfdcd7000 nid=0x6bc4 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"MainThread" #26 prio=5 os_prio=0 cpu=3156.25ms elapsed=120.06s tid=0x0000015bfdc3f800 nid=0x464 runnable  [0x00000027baefd000]
   java.lang.Thread.State: RUNNABLE
	at java.io.WinNTFileSystem.getBooleanAttributes(java.base@15-internal/Native Method)
	at java.io.File.exists(java.base@15-internal/File.java:823)
	at java.io.WinNTFileSystem.lambda$listRoots$1(java.base@15-internal/WinNTFileSystem.java:609)
	at java.io.WinNTFileSystem$$Lambda$148/0x0000000800bb2840.test(java.base@15-internal/Unknown Source)
	at java.util.stream.ReferencePipeline$2$1.accept(java.base@15-internal/ReferencePipeline.java:176)
	at java.util.stream.IntPipeline$1$1.accept(java.base@15-internal/IntPipeline.java:180)
	at java.util.BitSet$1BitSetSpliterator.forEachRemaining(java.base@15-internal/BitSet.java:1310)
	at java.util.Spliterator$OfInt.forEachRemaining(java.base@15-internal/Spliterator.java:699)
	at java.util.stream.AbstractPipeline.copyInto(java.base@15-internal/AbstractPipeline.java:484)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@15-internal/AbstractPipeline.java:474)
	at java.util.stream.AbstractPipeline.evaluate(java.base@15-internal/AbstractPipeline.java:550)
	at java.util.stream.AbstractPipeline.evaluateToArrayNode(java.base@15-internal/AbstractPipeline.java:260)
	at java.util.stream.ReferencePipeline.toArray(java.base@15-internal/ReferencePipeline.java:517)
	at java.io.WinNTFileSystem.listRoots(java.base@15-internal/WinNTFileSystem.java:610)
	at java.io.File.listRoots(java.base@15-internal/File.java:1794)
	at sun.awt.shell.Win32ShellFolderManager2.isDrive(java.desktop@15-internal/Win32ShellFolderManager2.java:505)
	at sun.awt.shell.Win32ShellFolderManager2.isFileSystemRoot(java.desktop@15-internal/Win32ShellFolderManager2.java:495)
	at sun.awt.shell.ShellFolder.isFileSystemRoot(java.desktop@15-internal/ShellFolder.java:274)
	at javax.swing.filechooser.FileSystemView.isFileSystemRoot(java.desktop@15-internal/FileSystemView.java:361)
	at javax.swing.filechooser.WindowsFileSystemView.isDrive(java.desktop@15-internal/FileSystemView.java:860)
	at FileSystemViewMemoryLeak.test(FileSystemViewMemoryLeak.java:77)
	at FileSystemViewMemoryLeak.main(FileSystemViewMemoryLeak.java:39)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@15-internal/Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@15-internal/NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@15-internal/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@15-internal/Method.java:564)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
	at java.lang.Thread.run(java.base@15-internal/Thread.java:832)

"Java2D Disposer" #27 daemon prio=10 os_prio=2 cpu=0.00ms elapsed=120.00s tid=0x0000015bfdc13000 nid=0x1318 in Object.wait()  [0x00000027bb2ff000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@15-internal/Native Method)
	- waiting on <0x00000000ff864d18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@15-internal/ReferenceQueue.java:155)
	- locked <0x00000000ff864d18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@15-internal/ReferenceQueue.java:176)
	at sun.java2d.Disposer.run(java.desktop@15-internal/Disposer.java:144)
	at java.lang.Thread.run(java.base@15-internal/Thread.java:832)

"AWT-Windows" #29 daemon prio=6 os_prio=0 cpu=0.00ms elapsed=120.00s tid=0x0000015bfde23000 nid=0x7538 runnable  [0x00000027bb4fe000]
   java.lang.Thread.State: RUNNABLE
	at sun.awt.windows.WToolkit.eventLoop(java.desktop@15-internal/Native Method)
	at sun.awt.windows.WToolkit.run(java.desktop@15-internal/WToolkit.java:361)
	at java.lang.Thread.run(java.base@15-internal/Thread.java:832)

"Swing-Shell" #32 daemon prio=10 os_prio=2 cpu=0.00ms elapsed=119.94s tid=0x0000015bfe2cd800 nid=0xc18 waiting on condition  [0x00000027bb7ff000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@15-internal/Native Method)
	- parking to wait for  <0x00000000ffc05448> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@15-internal/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@15-internal/AbstractQueuedSynchronizer.java:505)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@15-internal/ForkJoinPool.java:3137)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@15-internal/AbstractQueuedSynchronizer.java:1614)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@15-internal/LinkedBlockingQueue.java:435)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@15-internal/ThreadPoolExecutor.java:1056)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@15-internal/ThreadPoolExecutor.java:1116)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@15-internal/ThreadPoolExecutor.java:630)
	at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$1.run(java.desktop@15-internal/Win32ShellFolderManager2.java:586)
	at java.lang.Thread.run(java.base@15-internal/Thread.java:832)

"VM Thread" os_prio=2 cpu=0.00ms elapsed=120.12s tid=0x0000015bfd0f1800 nid=0x4dac runnable  

"GC Thread#0" os_prio=2 cpu=0.00ms elapsed=120.12s tid=0x0000015be0cd7800 nid=0x53a0 runnable  

"GC Thread#1" os_prio=2 cpu=15.63ms elapsed=120.00s tid=0x0000015bfdddf000 nid=0x4ec4 runnable  

"GC Thread#2" os_prio=2 cpu=0.00ms elapsed=120.00s tid=0x0000015bfdde0000 nid=0x3814 runnable  

"GC Thread#3" os_prio=2 cpu=15.63ms elapsed=120.00s tid=0x0000015bfdde2800 nid=0x7460 runnable  

"GC Thread#4" os_prio=2 cpu=15.63ms elapsed=119.97s tid=0x0000015bfde79000 nid=0x4e64 runnable  

"GC Thread#5" os_prio=2 cpu=15.63ms elapsed=119.97s tid=0x0000015bfde79800 nid=0x72dc runnable  

"G1 Main Marker" os_prio=2 cpu=0.00ms elapsed=120.12s tid=0x0000015be0cd9800 nid=0x270 runnable  

"G1 Conc#0" os_prio=2 cpu=0.00ms elapsed=120.12s tid=0x0000015be0cda800 nid=0x43e4 runnable  

"G1 Refine#0" os_prio=2 cpu=0.00ms elapsed=120.12s tid=0x0000015be0d76000 nid=0x7418 runnable  

"G1 Young RemSet Sampling" os_prio=2 cpu=0.00ms elapsed=120.12s tid=0x0000015be0d77800 nid=0x9a4 runnable  
"VM Periodic Task Thread" os_prio=2 cpu=0.00ms elapsed=120.07s tid=0x0000015bfdc4b800 nid=0x4f38 waiting on condition  

JNI global refs: 38, weak refs: 0

--- Timeout information end.
elapsed time (seconds): 120.191
----------configuration:(4/113)----------
Boot Layer
  add modules: java.desktop               
  add exports: java.desktop/sun.awt.shell ALL-UNNAMED

Comments
Fix request (11u) Clean backport. The fix for a test bug. Review 11u-dev: https://github.com/openjdk/jdk11u-dev/pull/1707
04-02-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk11u-dev/pull/1707 Date: 2023-02-04 07:09:46 +0000
04-02-2023

Changeset: e730e8b6 Author: Sergey Bylokhov <serb@openjdk.org> Date: 2020-11-06 00:30:09 +0000 URL: https://github.com/openjdk/jdk/commit/e730e8b6
06-11-2020