skylot / jadx

Dex to Java decompiler
Apache License 2.0
41.81k stars 4.88k forks source link

[core] jadx-gui melts my MacBook #1413

Open bagipro opened 2 years ago

bagipro commented 2 years ago

Hey!

When I have jadx-gui that finished decompilation and hangs in background, it consumes A LOT of CPU resources. When I run jstack, I get the following output:

2022-03-19 23:43:22
Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.0.2+12-46 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x0000600001e030e0, length=22, elements={
0x00007fbc7d00a800, 0x00007fbc7d808800, 0x00007fbc8c811800, 0x00007fbc8e174000,
0x00007fbc8e175000, 0x00007fbc8e17d800, 0x00007fbc8e17e800, 0x00007fbc8e17f800,
0x00007fbc8e181000, 0x00007fbc7d82d800, 0x00007fbc8e20d800, 0x00007fbc8d958800,
0x00007fbc7d82b800, 0x00007fbc6d808800, 0x00007fbc8d971000, 0x00007fbc7d105800,
0x00007fbc8d9ab000, 0x00007fbc8e431800, 0x00007fbc8e432800, 0x00007fbc6c93c000,
0x00007fbc8e44d800, 0x00007fbbe8ef3000
}

"Reference Handler" #2 daemon prio=10 os_prio=31 cpu=96.10ms elapsed=2320.84s tid=0x00007fbc7d00a800 nid=0x4303 waiting on condition  [0x000070000dbe9000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.ref.Reference.waitForReferencePendingList(java.base@14.0.2/Native Method)
    at java.lang.ref.Reference.processPendingReferences(java.base@14.0.2/Reference.java:241)
    at java.lang.ref.Reference$ReferenceHandler.run(java.base@14.0.2/Reference.java:213)

   Locked ownable synchronizers:
    - None

"Finalizer" #3 daemon prio=8 os_prio=31 cpu=114.82ms elapsed=2320.84s tid=0x00007fbc7d808800 nid=0x3803 in Object.wait()  [0x000070000eaec000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@14.0.2/Native Method)
    - waiting on <no object reference available>
    at java.lang.ref.ReferenceQueue.remove(java.base@14.0.2/ReferenceQueue.java:155)
    - locked <0x00000001c00002e8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(java.base@14.0.2/ReferenceQueue.java:176)
    at java.lang.ref.Finalizer$FinalizerThread.run(java.base@14.0.2/Finalizer.java:170)

   Locked ownable synchronizers:
    - None

"Signal Dispatcher" #4 daemon prio=9 os_prio=31 cpu=1.22ms elapsed=2320.83s tid=0x00007fbc8c811800 nid=0xa803 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Service Thread" #5 daemon prio=9 os_prio=31 cpu=0.34ms elapsed=2320.83s tid=0x00007fbc8e174000 nid=0xa703 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread0" #6 daemon prio=9 os_prio=31 cpu=28878.46ms elapsed=2320.83s tid=0x00007fbc8e175000 nid=0xa503 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
    - None

"C1 CompilerThread0" #14 daemon prio=9 os_prio=31 cpu=2413.03ms elapsed=2320.83s tid=0x00007fbc8e17d800 nid=0x5c03 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
    - None

"Sweeper thread" #18 daemon prio=9 os_prio=31 cpu=825.00ms elapsed=2320.83s tid=0x00007fbc8e17e800 nid=0x5e03 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Notification Thread" #19 daemon prio=9 os_prio=31 cpu=0.04ms elapsed=2320.82s tid=0x00007fbc8e17f800 nid=0x6203 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Common-Cleaner" #20 daemon prio=8 os_prio=31 cpu=8.03ms elapsed=2320.81s tid=0x00007fbc8e181000 nid=0xa003 in Object.wait()  [0x0000700013b0d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(java.base@14.0.2/Native Method)
    - waiting on <no object reference available>
    at java.lang.ref.ReferenceQueue.remove(java.base@14.0.2/ReferenceQueue.java:155)
    - locked <0x00000001c0000aa8> (a java.lang.ref.ReferenceQueue$Lock)
    at jdk.internal.ref.CleanerImpl.run(java.base@14.0.2/CleanerImpl.java:148)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)
    at jdk.internal.misc.InnocuousThread.run(java.base@14.0.2/InnocuousThread.java:134)

   Locked ownable synchronizers:
    - None

"Timer-0" #21 daemon prio=5 os_prio=31 cpu=0.26ms elapsed=2320.62s tid=0x00007fbc7d82d800 nid=0x6a03 in Object.wait()  [0x0000700014d19000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@14.0.2/Native Method)
    - waiting on <no object reference available>
    at java.lang.Object.wait(java.base@14.0.2/Object.java:321)
    at java.util.TimerThread.mainLoop(java.base@14.0.2/Timer.java:527)
    - locked <0x00000001c00013c8> (a java.util.TaskQueue)
    at java.util.TimerThread.run(java.base@14.0.2/Timer.java:506)

   Locked ownable synchronizers:
    - None

"AppKit Thread" #23 daemon prio=5 os_prio=31 cpu=25916.40ms elapsed=2320.54s tid=0x00007fbc8e20d800 nid=0x103 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"AWT-Shutdown" #24 prio=5 os_prio=31 cpu=3.14ms elapsed=2320.50s tid=0x00007fbc8d958800 nid=0xad03 in Object.wait()  [0x0000700015c1c000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@14.0.2/Native Method)
    - waiting on <no object reference available>
    at java.lang.Object.wait(java.base@14.0.2/Object.java:321)
    at sun.awt.AWTAutoShutdown.run(java.desktop@14.0.2/AWTAutoShutdown.java:291)
    - locked <0x00000001c0001488> (a java.lang.Object)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"Java2D Queue Flusher" #25 daemon prio=10 os_prio=31 cpu=150070.51ms elapsed=2320.41s tid=0x00007fbc7d82b800 nid=0x12603 runnable  [0x0000700016e31000]
   java.lang.Thread.State: RUNNABLE
    at sun.java2d.opengl.OGLRenderQueue.flushBuffer(java.desktop@14.0.2/Native Method)
    at sun.java2d.opengl.OGLRenderQueue.flushBuffer(java.desktop@14.0.2/OGLRenderQueue.java:147)
    at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(java.desktop@14.0.2/OGLRenderQueue.java:228)
    - locked <0x00000001c0001608> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"Java2D Disposer" #26 daemon prio=10 os_prio=31 cpu=3.28ms elapsed=2319.34s tid=0x00007fbc6d808800 nid=0xef03 in Object.wait()  [0x0000700017d34000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@14.0.2/Native Method)
    - waiting on <no object reference available>
    at java.lang.ref.ReferenceQueue.remove(java.base@14.0.2/ReferenceQueue.java:155)
    - locked <0x00000001c0001d30> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(java.base@14.0.2/ReferenceQueue.java:176)
    at sun.java2d.Disposer.run(java.desktop@14.0.2/Disposer.java:144)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"AWT-EventQueue-0" #27 prio=6 os_prio=31 cpu=234107.01ms elapsed=2319.23s tid=0x00007fbc8d971000 nid=0xfd17 in Object.wait()  [0x0000700018c36000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(java.base@14.0.2/Native Method)
    - waiting on <no object reference available>
    at java.lang.Object.wait(java.base@14.0.2/Object.java:321)
    at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.flushNow(java.desktop@14.0.2/OGLRenderQueue.java:178)
    - locked <0x00000001c0001608> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)
    at sun.java2d.opengl.OGLRenderQueue.flushNow(java.desktop@14.0.2/OGLRenderQueue.java:123)
    at sun.java2d.pipe.BufferedMaskFill.MaskFill(java.desktop@14.0.2/BufferedMaskFill.java:105)
    at sun.java2d.pipe.AlphaColorPipe.renderPathTile(java.desktop@14.0.2/AlphaColorPipe.java:55)
    at sun.java2d.pipe.AAShapePipe.renderTiles(java.desktop@14.0.2/AAShapePipe.java:201)
    at sun.java2d.pipe.AAShapePipe.renderPath(java.desktop@14.0.2/AAShapePipe.java:149)
    at sun.java2d.pipe.AAShapePipe.fill(java.desktop@14.0.2/AAShapePipe.java:82)
    at sun.java2d.pipe.PixelToParallelogramConverter.fill(java.desktop@14.0.2/PixelToParallelogramConverter.java:164)
    at sun.java2d.pipe.PixelToParallelogramConverter.fill(java.desktop@14.0.2/PixelToParallelogramConverter.java:164)
    at sun.java2d.pipe.ValidatePipe.fill(java.desktop@14.0.2/ValidatePipe.java:160)
    at sun.java2d.SunGraphics2D.fill(java.desktop@14.0.2/SunGraphics2D.java:2528)
    at com.formdev.flatlaf.ui.FlatUIUtils.paintOutline(FlatUIUtils.java:598)
    at com.formdev.flatlaf.ui.FlatUIUtils.paintOutline(FlatUIUtils.java:568)
    at com.formdev.flatlaf.ui.FlatUIUtils.paintOutlinedComponentImpl(FlatUIUtils.java:547)
    at com.formdev.flatlaf.ui.FlatUIUtils.paintOutlinedComponent(FlatUIUtils.java:483)
    at com.formdev.flatlaf.ui.FlatBorder.paintBorder(FlatBorder.java:131)
    at javax.swing.JComponent.paintBorder(java.desktop@14.0.2/JComponent.java:967)
    at javax.swing.JComponent.paint(java.desktop@14.0.2/JComponent.java:1075)
    at javax.swing.JComponent.paintChildren(java.desktop@14.0.2/JComponent.java:907)
    - locked <0x00000001c0002420> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.paint(java.desktop@14.0.2/JComponent.java:1083)
    at javax.swing.JComponent.paintChildren(java.desktop@14.0.2/JComponent.java:907)
    - locked <0x00000001c0002420> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.paint(java.desktop@14.0.2/JComponent.java:1083)
    at javax.swing.JComponent.paintChildren(java.desktop@14.0.2/JComponent.java:907)
    - locked <0x00000001c0002420> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.paint(java.desktop@14.0.2/JComponent.java:1083)
    at javax.swing.JComponent.paintChildren(java.desktop@14.0.2/JComponent.java:907)
    - locked <0x00000001c0002420> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.paint(java.desktop@14.0.2/JComponent.java:1083)
    at javax.swing.JComponent.paintChildren(java.desktop@14.0.2/JComponent.java:907)
    - locked <0x00000001c0002420> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JSplitPane.paintChildren(java.desktop@14.0.2/JSplitPane.java:1024)
    at javax.swing.JComponent.paint(java.desktop@14.0.2/JComponent.java:1083)
    at javax.swing.JComponent.paintToOffscreen(java.desktop@14.0.2/JComponent.java:5255)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(java.desktop@14.0.2/RepaintManager.java:1643)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(java.desktop@14.0.2/RepaintManager.java:1618)
    at javax.swing.RepaintManager$PaintManager.paint(java.desktop@14.0.2/RepaintManager.java:1556)
    at javax.swing.RepaintManager.paint(java.desktop@14.0.2/RepaintManager.java:1323)
    at javax.swing.JComponent._paintImmediately(java.desktop@14.0.2/JComponent.java:5203)
    at javax.swing.JComponent.paintImmediately(java.desktop@14.0.2/JComponent.java:5013)
    at javax.swing.RepaintManager$4.run(java.desktop@14.0.2/RepaintManager.java:865)
    at javax.swing.RepaintManager$4.run(java.desktop@14.0.2/RepaintManager.java:848)
    at java.security.AccessController.executePrivileged(java.base@14.0.2/AccessController.java:753)
    at java.security.AccessController.doPrivileged(java.base@14.0.2/AccessController.java:391)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@14.0.2/ProtectionDomain.java:85)
    at javax.swing.RepaintManager.paintDirtyRegions(java.desktop@14.0.2/RepaintManager.java:848)
    at javax.swing.RepaintManager.paintDirtyRegions(java.desktop@14.0.2/RepaintManager.java:823)
    at javax.swing.RepaintManager.prePaintDirtyRegions(java.desktop@14.0.2/RepaintManager.java:772)
    at javax.swing.RepaintManager$ProcessingRunnable.run(java.desktop@14.0.2/RepaintManager.java:1884)
    at java.awt.event.InvocationEvent.dispatch(java.desktop@14.0.2/InvocationEvent.java:316)
    at java.awt.EventQueue.dispatchEventImpl(java.desktop@14.0.2/EventQueue.java:770)
    at java.awt.EventQueue$4.run(java.desktop@14.0.2/EventQueue.java:721)
    at java.awt.EventQueue$4.run(java.desktop@14.0.2/EventQueue.java:715)
    at java.security.AccessController.executePrivileged(java.base@14.0.2/AccessController.java:753)
    at java.security.AccessController.doPrivileged(java.base@14.0.2/AccessController.java:391)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@14.0.2/ProtectionDomain.java:85)
    at java.awt.EventQueue.dispatchEvent(java.desktop@14.0.2/EventQueue.java:740)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@14.0.2/EventDispatchThread.java:203)
    at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@14.0.2/EventDispatchThread.java:124)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop@14.0.2/EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(java.desktop@14.0.2/EventDispatchThread.java:109)
    at java.awt.EventDispatchThread.pumpEvents(java.desktop@14.0.2/EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.run(java.desktop@14.0.2/EventDispatchThread.java:90)

   Locked ownable synchronizers:
    - <0x00000001c068fc28> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"TimerQueue" #28 daemon prio=5 os_prio=31 cpu=774.96ms elapsed=2318.86s tid=0x00007fbc7d105800 nid=0xfe0f waiting on condition  [0x0000700019b3a000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@14.0.2/Native Method)
    - parking to wait for  <0x00000001c00053e0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@14.0.2/LockSupport.java:341)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@14.0.2/AbstractQueuedSynchronizer.java:505)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@14.0.2/ForkJoinPool.java:3137)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@14.0.2/AbstractQueuedSynchronizer.java:1614)
    at java.util.concurrent.DelayQueue.take(java.base@14.0.2/DelayQueue.java:217)
    at javax.swing.TimerQueue.run(java.desktop@14.0.2/TimerQueue.java:171)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - <0x00000001c0005550> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"DestroyJavaVM" #31 prio=5 os_prio=31 cpu=896.26ms elapsed=2318.56s tid=0x00007fbc8d9ab000 nid=0x2003 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"RxSchedulerPurge-1" #32 daemon prio=5 os_prio=31 cpu=178.29ms elapsed=2318.49s tid=0x00007fbc8e431800 nid=0x1fb0f waiting on condition  [0x000070001aa3d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@14.0.2/Native Method)
    - parking to wait for  <0x00000001c0001f70> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@14.0.2/LockSupport.java:252)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@14.0.2/AbstractQueuedSynchronizer.java:1661)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@14.0.2/ScheduledThreadPoolExecutor.java:1182)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@14.0.2/ScheduledThreadPoolExecutor.java:899)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@14.0.2/ThreadPoolExecutor.java:1056)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@14.0.2/ThreadPoolExecutor.java:1116)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@14.0.2/ThreadPoolExecutor.java:630)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"RxCachedWorkerPoolEvictor-1" #33 daemon prio=5 os_prio=31 cpu=2.66ms elapsed=2318.49s tid=0x00007fbc8e432800 nid=0x1f403 waiting on condition  [0x000070001b940000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@14.0.2/Native Method)
    - parking to wait for  <0x00000001c00016a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@14.0.2/LockSupport.java:252)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@14.0.2/AbstractQueuedSynchronizer.java:1661)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@14.0.2/ScheduledThreadPoolExecutor.java:1182)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@14.0.2/ScheduledThreadPoolExecutor.java:899)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@14.0.2/ThreadPoolExecutor.java:1056)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@14.0.2/ThreadPoolExecutor.java:1116)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@14.0.2/ThreadPoolExecutor.java:630)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"RxNewThreadScheduler-1" #42 daemon prio=5 os_prio=31 cpu=158.50ms elapsed=2318.35s tid=0x00007fbc6c93c000 nid=0x1d713 runnable  [0x000070001e570000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@14.0.2/Native Method)
    - parking to wait for  <0x00000001c3001240> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(java.base@14.0.2/LockSupport.java:252)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@14.0.2/AbstractQueuedSynchronizer.java:1661)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@14.0.2/ScheduledThreadPoolExecutor.java:1182)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@14.0.2/ScheduledThreadPoolExecutor.java:899)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@14.0.2/ThreadPoolExecutor.java:1056)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@14.0.2/ThreadPoolExecutor.java:1116)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@14.0.2/ThreadPoolExecutor.java:630)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"pool-3-thread-1" #43 prio=5 os_prio=31 cpu=73.50ms elapsed=2255.17s tid=0x00007fbc8e44d800 nid=0x1c953 waiting on condition  [0x000070001f473000]
   java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park(java.base@14.0.2/Native Method)
    - parking to wait for  <0x00000001c0409000> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(java.base@14.0.2/LockSupport.java:341)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@14.0.2/AbstractQueuedSynchronizer.java:505)
    at java.util.concurrent.ForkJoinPool.managedBlock(java.base@14.0.2/ForkJoinPool.java:3137)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@14.0.2/AbstractQueuedSynchronizer.java:1614)
    at java.util.concurrent.LinkedBlockingQueue.take(java.base@14.0.2/LinkedBlockingQueue.java:435)
    at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@14.0.2/ThreadPoolExecutor.java:1056)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@14.0.2/ThreadPoolExecutor.java:1116)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@14.0.2/ThreadPoolExecutor.java:630)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - None

"Attach Listener" #66 daemon prio=9 os_prio=31 cpu=1.28ms elapsed=60.62s tid=0x00007fbbe8ef3000 nid=0x1d80f waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"VM Thread" os_prio=31 cpu=5003.73ms elapsed=2320.84s tid=0x00007fbc8c809000 nid=0x4703 runnable  

"GC Thread#0" os_prio=31 cpu=1232.97ms elapsed=2320.85s tid=0x00007fbc8e039800 nid=0x2f03 runnable  

"GC Thread#1" os_prio=31 cpu=1212.78ms elapsed=2318.48s tid=0x00007fbc6d079800 nid=0x15d03 runnable  

"GC Thread#2" os_prio=31 cpu=1187.35ms elapsed=2318.48s tid=0x00007fbc6d07e800 nid=0x1f203 runnable  

"GC Thread#3" os_prio=31 cpu=1213.33ms elapsed=2318.48s tid=0x00007fbc6d07f000 nid=0x15f03 runnable  

"GC Thread#4" os_prio=31 cpu=1241.61ms elapsed=2318.48s tid=0x00007fbc6d0ba000 nid=0x1f003 runnable  

"GC Thread#5" os_prio=31 cpu=1215.13ms elapsed=2318.48s tid=0x00007fbc8db57800 nid=0x16103 runnable  

"GC Thread#6" os_prio=31 cpu=1203.89ms elapsed=2318.48s tid=0x00007fbc8db82800 nid=0x16303 runnable  

"GC Thread#7" os_prio=31 cpu=1229.01ms elapsed=2318.48s tid=0x00007fbc7d115800 nid=0x1ee03 runnable  

"GC Thread#8" os_prio=31 cpu=1244.77ms elapsed=2318.48s tid=0x00007fbc7d116800 nid=0x16503 runnable  

"GC Thread#9" os_prio=31 cpu=1232.14ms elapsed=2318.48s tid=0x00007fbc7d17b000 nid=0x16703 runnable  

"GC Thread#10" os_prio=31 cpu=1239.67ms elapsed=2318.48s tid=0x00007fbc8c980000 nid=0x1ec03 runnable  

"GC Thread#11" os_prio=31 cpu=1188.83ms elapsed=2318.48s tid=0x00007fbc8c931800 nid=0x1eb03 runnable  

"GC Thread#12" os_prio=31 cpu=1228.32ms elapsed=2318.48s tid=0x00007fbc7d17c000 nid=0x1e903 runnable  

"G1 Main Marker" os_prio=31 cpu=1.17ms elapsed=2320.85s tid=0x00007fbc8e03a800 nid=0x4b03 runnable  

"G1 Conc#0" os_prio=31 cpu=362.40ms elapsed=2320.85s tid=0x00007fbc8e03b800 nid=0x3303 runnable  

"G1 Conc#1" os_prio=31 cpu=365.74ms elapsed=2318.46s tid=0x00007fbc7d900000 nid=0xe10f runnable  

"G1 Conc#2" os_prio=31 cpu=358.04ms elapsed=2318.46s tid=0x00007fbc7d8fa000 nid=0x16903 runnable  

"G1 Refine#0" os_prio=31 cpu=1369.62ms elapsed=2320.85s tid=0x00007fbc8e170000 nid=0x3403 runnable  

"G1 Refine#1" os_prio=31 cpu=248.04ms elapsed=2254.86s tid=0x00007fbc2e02b000 nid=0x17e63 runnable  

"G1 Refine#2" os_prio=31 cpu=209.43ms elapsed=2254.86s tid=0x00007fbc7d11a000 nid=0x1d513 runnable  

"G1 Refine#3" os_prio=31 cpu=190.35ms elapsed=2254.81s tid=0x00007fbbdc839800 nid=0x17f33 runnable  

"G1 Refine#4" os_prio=31 cpu=179.32ms elapsed=2254.81s tid=0x00007fbc3d054800 nid=0x1c427 runnable  

"G1 Refine#5" os_prio=31 cpu=151.52ms elapsed=2254.80s tid=0x00007fbc3d823000 nid=0x1003b runnable  

"G1 Refine#6" os_prio=31 cpu=134.55ms elapsed=2254.80s tid=0x00007fbc0c841800 nid=0x1c813 runnable  

"G1 Refine#7" os_prio=31 cpu=118.21ms elapsed=2254.77s tid=0x00007fbc0c842800 nid=0x1ca1f runnable  

"G1 Refine#8" os_prio=31 cpu=114.60ms elapsed=2254.77s tid=0x00007fbc3d8a4000 nid=0x1c007 runnable  

"G1 Refine#9" os_prio=31 cpu=103.61ms elapsed=2254.21s tid=0x00007fbc2d82b000 nid=0x1c557 runnable  

"G1 Refine#10" os_prio=31 cpu=93.93ms elapsed=2254.21s tid=0x00007fbc2d3b8000 nid=0x1db0f runnable  

"G1 Refine#11" os_prio=31 cpu=77.72ms elapsed=2254.21s tid=0x00007fbc6d0c1000 nid=0x17417 runnable  

"G1 Refine#12" os_prio=31 cpu=70.73ms elapsed=2254.21s tid=0x00007fbc0cb50000 nid=0x1df13 runnable  

"G1 Young RemSet Sampling" os_prio=31 cpu=709.88ms elapsed=2320.85s tid=0x00007fbc8d817800 nid=0x3503 runnable  
"VM Periodic Task Thread" os_prio=31 cpu=1137.72ms elapsed=2320.82s tid=0x00007fbc8e180800 nid=0x6403 waiting on condition  

JNI global refs: 136, weak refs: 31

However, I cannot see anything in the output that could lead to such behavior. Do I need to run any other tests to detect the problem?

skylot commented 2 years ago

@bagipro Last time (in #1000) cause was memory usage bar, so try to disable it. Also, I can suggest updating java to the latest version (17).

bagipro commented 2 years ago

@skylot Yeah, I actually completely forgot about this report :) I tried to look on jadx-gui. But some reason when I open some tabs, a new server socket thread is launched:

"RMI TCP Accept-0" #57 daemon prio=9 os_prio=31 cpu=2.93ms elapsed=482.32s tid=0x00007fcba0b53800 nid=0x18b3b runnable  [0x000070001c9b7000]
   java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.Net.accept(java.base@14.0.2/Native Method)
    at sun.nio.ch.NioSocketImpl.accept(java.base@14.0.2/NioSocketImpl.java:755)
    at java.net.ServerSocket.implAccept(java.base@14.0.2/ServerSocket.java:684)
    at java.net.ServerSocket.platformImplAccept(java.base@14.0.2/ServerSocket.java:650)
    at java.net.ServerSocket.implAccept(java.base@14.0.2/ServerSocket.java:626)
    at java.net.ServerSocket.implAccept(java.base@14.0.2/ServerSocket.java:583)
    at java.net.ServerSocket.accept(java.base@14.0.2/ServerSocket.java:540)
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent@14.0.2/LocalRMIServerSocketFactory.java:52)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(java.rmi@14.0.2/TCPTransport.java:413)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(java.rmi@14.0.2/TCPTransport.java:377)
    at java.lang.Thread.run(java.base@14.0.2/Thread.java:832)

   Locked ownable synchronizers:
    - <0x00000001c2a38130> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

Could I be an issue? And do you know what is that thread?

skylot commented 2 years ago

sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent

@bagipro this might be a profiler connection or other monitoring tools you are using

Did disabling memory usage bar help this time?

bagipro commented 2 years ago

@skylot Oh, looks like it was enabled. Let me try using jadx-gui for a few days and I will close the issue.

Thanks!

bagipro commented 2 years ago

Yeah, it solves the problem (again). Sorry!

skylot commented 2 years ago

I will keep this issue open because I want to run some checks: