Vineflower / vineflower-intellij

Intellij IDEA plugin that adds Vineflower support
MIT License
40 stars 11 forks source link

Vineflower causes UI to lock up #20

Open Rubydesic opened 3 months ago

Rubydesic commented 3 months ago

Stacktrace from thread dump:

"AWT-EventQueue-0" prio=0 tid=0x0 nid=0x0 waiting on condition
     java.lang.Thread.State: WAITING
 on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@8cee174
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    at java.base@17.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
    at org.vineflower.ijplugin.VineflowerInvoker.decompile(VineflowerInvoker.kt:164)
    at org.vineflower.ijplugin.VineflowerDecompilerBase$Companion.getText(VineflowerDecompilerBase.kt:39)
    at org.vineflower.ijplugin.VineflowerDecompilerLight.getText(VineflowerDecompilerLight.kt:12)
    at org.vineflower.ijplugin.VineflowerDecompilerLight.getText(VineflowerDecompilerLight.kt:6)
    at com.intellij.psi.impl.compiled.ClassFileDecompiler.decompile(ClassFileDecompiler.java:29)
    at com.intellij.openapi.fileEditor.impl.LoadTextUtil.loadText(LoadTextUtil.java:478)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$3.run(FileDocumentManagerImpl.java:735)
    at com.intellij.openapi.application.impl.RwLockHolder.runWriteAction(RwLockHolder.kt:344)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:883)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$reloadFromDisk$5(FileDocumentManagerImpl.java:722)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$$Lambda$10225/0x00000001048df800.run(Unknown Source)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:225)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:177)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:167)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.reloadFromDisk(FileDocumentManagerImpl.java:722)
    at com.intellij.openapi.fileEditor.FileDocumentManager.reloadFromDisk(FileDocumentManager.java:169)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.contentsChanged(FileDocumentManagerImpl.java:702)
    at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$MyAsyncFileListener$1.afterVfsChange(FileDocumentManagerImpl.java:642)
    at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.afterVfsChange(AsyncEventSupport.java:136)
    at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.processEventsFromRefresh(AsyncEventSupport.java:159)
    at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInWriteAction(RefreshSessionImpl.java:240)
    at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$1(RefreshSessionImpl.java:222)
    at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl$$Lambda$2239/0x00000001013fdbb0.accept(Unknown Source)
    at com.intellij.openapi.application.impl.RwLockHolder.runEdtProgressWriteAction$lambda$2$lambda$1(RwLockHolder.kt:431)
    at com.intellij.openapi.application.impl.RwLockHolder$$Lambda$2251/0x0000000101409768.run(Unknown Source)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:221)
    at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$2254/0x000000010140a070.invoke(Unknown Source)
    at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:46)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:220)
    at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$1836/0x00000001010e3550.run(Unknown Source)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
    at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$1837/0x00000001010e3798.compute(Unknown Source)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202)
    at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:156)
    at com.intellij.openapi.application.impl.RwLockHolder.runEdtProgressWriteAction$lambda$2(RwLockHolder.kt:431)
    at com.intellij.openapi.application.impl.RwLockHolder$$Lambda$2240/0x0000000101400000.compute(Unknown Source)
    at com.intellij.openapi.application.impl.RwLockHolder.runWriteActionWithClass(RwLockHolder.kt:440)
    at com.intellij.openapi.application.impl.RwLockHolder.runEdtProgressWriteAction(RwLockHolder.kt:429)
    at com.intellij.openapi.application.impl.RwLockHolder.runWriteActionWithNonCancellableProgressInDispatchThread(RwLockHolder.kt:413)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithNonCancellableProgressInDispatchThread(ApplicationImpl.java:869)
    at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEvents(RefreshSessionImpl.java:218)
    at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.lambda$queueSession$2(RefreshQueueImpl.java:113)
    at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl$$Lambda$8296/0x000000010408c250.accept(Unknown Source)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$7(NonBlockingReadActionImpl.java:728)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission$$Lambda$1857/0x000000010110c1a0.run(Unknown Source)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
    at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
    at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
    at com.intellij.openapi.application.impl.RwLockHolder.runIntendedWriteActionOnCurrentThread(RwLockHolder.kt:204)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:830)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:419)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:138)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:129)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWithImplicitRead(ApplicationImpl.java:1152)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:81)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:123)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:43)
    at com.intellij.openapi.application.impl.FlushQueue$$Lambda$509/0x0000000100519e80.run(Unknown Source)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
    at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
    at java.base@17.0.11/java.security.AccessController.executePrivileged(AccessController.java:776)
    at java.base@17.0.11/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base@17.0.11/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:699)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$12(IdeEventQueue.kt:593)
    at com.intellij.ide.IdeEventQueue$$Lambda$686/0x000000010082fb60.run(Unknown Source)
    at com.intellij.openapi.application.impl.RwLockHolder.runWithoutImplicitRead(RwLockHolder.kt:105)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:593)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:77)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:362)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:361)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:843)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:361)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:356)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1022)
    at com.intellij.ide.IdeEventQueueKt$$Lambda$685/0x000000010082d080.run(Unknown Source)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1022)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:356)
    at com.intellij.ide.IdeEventQueue$$Lambda$684/0x0000000100827d98.run(Unknown Source)
    at com.intellij.openapi.application.impl.RwLockHolder.runIntendedWriteActionOnCurrentThread(RwLockHolder.kt:209)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:830)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:398)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Earthcomputer commented 3 months ago

Hi, could you include the whole thread dump? A deadlock usually involves multiple threads blocking on each other.

Earthcomputer commented 3 months ago

Also, does this happen consistently on a particular class, which would make it easy for me to reproduce the problem?

Rubydesic commented 3 months ago

I don't know what causes it or how to reproduce it. Full thread dump attached

threadDump-20240523-184254.txt

calmilamsy commented 2 weeks ago

Bumping to say that I'm having the same issue. It happens seemingly on random projects? I full cleared cache and .idea files from my project that had the issue, and it was freezing on the index step every time.

I had decompiled a kotlin class in said project, if that helps at all.

halotroop2288 commented 2 weeks ago

I get a similar issue whenever the plugin is installed. This issue has persisted through a complete reset of my IDE.

wagyourtail commented 2 weeks ago

I get a similar issue whenever the plugin is installed. This issue has persisted through a complete reset of my IDE.

I believe it has something to do with the state of the .idea folder (so the state the project gets loaded in), I can delete it to resolve this

calmilamsy commented 2 weeks ago

It persists through cache invalidation and a cleared .idea folder for me.

wagyourtail commented 2 weeks ago

It persists through cache invalidation and a cleared .idea folder for me.

as in your ide still instantly crashes after deleting .idea? or you have to actually start doing things for it to crash again?

calmilamsy commented 2 weeks ago

It hangs at the end of indexing libraries.

gmitch215 commented 1 week ago

+1, hangs while indexing