smallcloudai / refact-intellij

Refact AI: Open-source AI Code assistant with autocompletion, chat, refactoring and more for IntelliJ JetBrains IDEs
https://refact.ai
BSD 3-Clause "New" or "Revised" License
31 stars 12 forks source link

IDE hang in SMCStatusBarWidget.update #135

Open U1F984 opened 4 months ago

U1F984 commented 4 months ago

IDE has been hanging for some minutes, here's one of the thread dumps:

"AWT-EventQueue-0" prio=0 tid=0x0 nid=0x0 runnable
     java.lang.Thread.State: RUNNABLE

    at java.base@17.0.10/java.util.ArrayList.indexOfRange(ArrayList.java:299)
    at java.base@17.0.10/java.util.ArrayList.indexOf(ArrayList.java:286)
    at java.base@17.0.10/java.util.ArrayList.contains(ArrayList.java:275)
    at com.intellij.util.containers.LockFreeCopyOnWriteArrayList.createArrayRemoveAll(LockFreeCopyOnWriteArrayList.java:531)
    at com.intellij.util.containers.LockFreeCopyOnWriteArrayList.removeAll(LockFreeCopyOnWriteArrayList.java:515)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.writeUnlock(ReadMostlyRWLock.java:309)
    at com.intellij.openapi.application.impl.RwLockHolder.endWrite(RwLockHolder.kt:556)
    at com.intellij.openapi.application.impl.RwLockHolder.runWriteAction(RwLockHolder.kt:357)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:888)
    at com.smallcloud.refactai.status_bar.SMCStatusBarWidget.update(StatusBarWidget.kt:229)
    at com.smallcloud.refactai.status_bar.SMCStatusBarWidget.access$update(StatusBarWidget.kt:44)
    at com.smallcloud.refactai.status_bar.SMCStatusBarWidget$6.isEditorChanged(StatusBarWidget.kt:121)
    at java.base@17.0.10/java.lang.invoke.LambdaForm$DMH/0x0000000800640000.invokeInterface(LambdaForm$DMH)
    at java.base@17.0.10/java.lang.invoke.LambdaForm$MH/0x000000080362c400.invoke(LambdaForm$MH)
    at java.base@17.0.10/java.lang.invoke.LambdaForm$MH/0x0000000800358c00.invokeExact_MT(LambdaForm$MH)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:700)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:660)
    at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:423)
    at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:402)
    at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:461)
    at jdk.proxy10/jdk.proxy10.$Proxy148.isEditorChanged(Unknown Source)
    at com.smallcloud.refactai.listeners.LastEditorGetterListener.selectionChanged(LastEditorGetterListener.kt:70)
    at java.base@17.0.10/java.lang.invoke.LambdaForm$DMH/0x0000000800640000.invokeInterface(LambdaForm$DMH)
    at java.base@17.0.10/java.lang.invoke.LambdaForm$MH/0x000000080362c400.invoke(LambdaForm$MH)
    at java.base@17.0.10/java.lang.invoke.LambdaForm$MH/0x0000000800358c00.invokeExact_MT(LambdaForm$MH)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:700)
    at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:660)
    at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:423)
    at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:402)
    at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
    at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:461)
    at jdk.proxy2/jdk.proxy2.$Proxy45.selectionChanged(Unknown Source)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.fireSelectionChanged(FileEditorManagerImpl.kt:1750)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.access$fireSelectionChanged(FileEditorManagerImpl.kt:126)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1$1.invoke(FileEditorManagerImpl.kt:240)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1$1.invoke(FileEditorManagerImpl.kt:238)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:320)
    at com.intellij.openapi.progress.CoroutinesKt.access$blockingContextInner(coroutines.kt:1)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invokeSuspend(coroutines.kt:197)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
    at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
    at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
    at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:196)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$1$1.invokeSuspend(FileEditorManagerImpl.kt:238)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at com.intellij.openapi.application.impl.DispatchedRunnable.run(DispatchedRunnable.kt:43)
    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$654/0x0000000800705d08.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.10/java.security.AccessController.executePrivileged(AccessController.java:776)
    at java.base@17.0.10/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base@17.0.10/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:698)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$12(IdeEventQueue.kt:593)
    at com.intellij.ide.IdeEventQueue$$Lambda$620/0x0000000800697058.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:1021)
    at com.intellij.ide.IdeEventQueueKt$$Lambda$618/0x0000000800692488.run(Unknown Source)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1021)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:356)
    at com.intellij.ide.IdeEventQueue$$Lambda$614/0x0000000800689d80.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)
reymondzzzz commented 4 months ago

Hi! Thank you for report. Could you share more information about version of plugin and ide?