Turbo87 / intellij-emberjs

Ember.js support for JetBrains IDEs (IntelliJ, WebStorm, ...)
Apache License 2.0
217 stars 33 forks source link

TemplateLint --fix on save freezes on version 2023.1.1 #484

Closed dwickern closed 1 year ago

dwickern commented 1 year ago

Description

Since the latest update, TemplateLint hangs for me. Does anyone else have this problem?

Steps to Reproduce

  1. In settings, enable the option to run ember-template-lint --fix on save
  2. Modify and save a hbs file

Expected behavior: [What you expect to happen]

TemplateLint runs its auto fixes and IntelliJ reloads the file.

Actual behavior: [What actually happens]

This popup appears indefinitely:

Screenshot 2023-04-21 at 10 39 27 AM

The IntelliJ window is still responsive but the popup is modal and the cancel button doesn't work. I have to kill the process.

Reproduces how often: [What percentage of the time does it reproduce?]

Every time.

Versions

Build #IU-231.8109.175, built on March 28, 2023

2023.1.1

Additional Information

There's a deadlock between the thread running the completeCallback (which reloads the fixed files in the IDE):

"ApplicationImpl pooled thread 26@39522" prio=4 tid=0xc9 nid=NA waiting
  java.lang.Thread.State: WAITING
      at jdk.internal.misc.Unsafe.park(Unsafe.java:-1)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1047)
      at com.intellij.util.concurrency.Semaphore.waitForUnsafe(Semaphore.java:87)
      at com.intellij.util.concurrency.Semaphore.waitFor(Semaphore.java:79)
      at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.waitFor(RefreshSessionImpl.java:251)
      at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.execute(RefreshQueueImpl.java:65)
      at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.launch(RefreshSessionImpl.java:116)
      at com.intellij.lang.javascript.linter.JSLinterFixAction.lambda$getRefreshFilesCallback$0(JSLinterFixAction.java:189)
      at com.intellij.lang.javascript.linter.JSLinterFixAction$$Lambda$5804/0x0000000302d0a050.run(Unknown Source:-1)
      at TemplateLintFixAction$createTask$1.invoke(TemplateLintFixAction.kt:33)
      at TemplateLintFixAction$createTask$1.invoke(TemplateLintFixAction.kt:22)
      at TemplateLintFixAction$makeModalOrBackgroundTask$1.run(TemplateLintFixAction.kt:42)
      at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:429)
      at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
      at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressSynchronously$9(CoreProgressManager.java:513)
      at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$5808/0x0000000302d85800.run(Unknown Source:-1)
      at com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:84)
      at com.intellij.openapi.progress.impl.ProgressRunner$$Lambda$5809/0x0000000302d85cf8.apply(Unknown Source:-1)
      at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
      at com.intellij.openapi.progress.impl.ProgressRunner$$Lambda$1741/0x00000003011bb600.run(Unknown Source:-1)
      at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
      at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$888/0x00000003008c62e8.run(Unknown Source:-1)
      at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
      at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$889/0x00000003008c6798.compute(Unknown Source:-1)
      at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
      at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
      at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
      at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
      at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
      at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
      at com.intellij.openapi.progress.impl.ProgressRunner$$Lambda$1738/0x00000003011baab0.get(Unknown Source:-1)
      at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
      at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
      at java.security.AccessController.executePrivileged(AccessController.java:776)
      at java.security.AccessController.doPrivileged(AccessController.java:399)
      at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
      at java.lang.Thread.run(Thread.java:833)

...and the thread managing the progress popup:

"AWT-EventQueue-0@3649" prio=6 tid=0x67 nid=NA waiting
  java.lang.Thread.State: WAITING
      at jdk.internal.misc.Unsafe.park(Unsafe.java:-1)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
      at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
      at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
      at java.awt.EventQueue.getNextEvent(EventQueue.java:579)
      at com.intellij.ide.IdeEventQueue.getNextEvent$lambda$6(IdeEventQueue.kt:460)
      at com.intellij.ide.IdeEventQueue$$Lambda$573/0x00000003006aaf40.compute(Unknown Source:-1)
      at com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:857)
      at com.intellij.ide.IdeEventQueue.getNextEvent(IdeEventQueue.kt:460)
      at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.kt:699)
      at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$4(ProgressWindow.java:215)
      at com.intellij.openapi.progress.util.ProgressWindow$$Lambda$5813/0x0000000302d886e8.compute(Unknown Source:-1)
      at com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:857)
      at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$5(ProgressWindow.java:210)
      at com.intellij.openapi.progress.util.ProgressWindow$$Lambda$5812/0x0000000302d884a0.run(Unknown Source:-1)
      at com.intellij.openapi.progress.util.ProgressWindow.executeInModalContext(ProgressWindow.java:191)
      at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:208)
      at com.intellij.openapi.progress.impl.ProgressRunner.lambda$execFromEDT$6(ProgressRunner.java:329)
      at com.intellij.openapi.progress.impl.ProgressRunner$$Lambda$5810/0x0000000302d88000.accept(Unknown Source:-1)
      at java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:757)
      at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:735)
      at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2182)
      at com.intellij.openapi.progress.impl.ProgressRunner.execFromEDT(ProgressRunner.java:326)
      at com.intellij.openapi.progress.impl.ProgressRunner.submit(ProgressRunner.java:267)
      at com.intellij.openapi.progress.impl.ProgressRunner.submitAndGet(ProgressRunner.java:193)
      at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:422)
      at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:524)
      at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:85)
      at com.intellij.openapi.progress.impl.CoreProgressManager.run(CoreProgressManager.java:367)
      at com.intellij.lang.javascript.linter.JSLinterFixAction.actionPerformedImpl(JSLinterFixAction.java:139)
      at com.intellij.lang.javascript.linter.JSLinterFixAction.processFiles(JSLinterFixAction.java:119)
      at TemplateLintActionOnSave.processDocuments(TemplateLintActionOnSave.kt:21)
      at com.intellij.ide.actionsOnSave.impl.ActionsOnSaveFileDocumentManagerListener.processSavedDocuments(ActionsOnSaveFileDocumentManagerListener.java:121)
      at com.intellij.ide.actionsOnSave.impl.ActionsOnSaveFileDocumentManagerListener.lambda$scheduleDocumentsProcessing$0(ActionsOnSaveFileDocumentManagerListener.java:92)
      at com.intellij.ide.actionsOnSave.impl.ActionsOnSaveFileDocumentManagerListener$$Lambda$5781/0x0000000302d72ff8.run(Unknown Source:-1)
      at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
      at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
      at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
      at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
      at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:456)
      at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
      at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:122)
      at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
      at com.intellij.openapi.application.impl.FlushQueue$$Lambda$571/0x00000003006aa870.run(Unknown Source:-1)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
      at java.awt.EventQueue$3.run(EventQueue.java:739)
      at java.awt.EventQueue$3.run(EventQueue.java:731)
      at java.security.AccessController.executePrivileged(AccessController.java:776)
      at java.security.AccessController.doPrivileged(AccessController.java:399)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:758)
      at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
      at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:570)
      at com.intellij.ide.IdeEventQueue$$Lambda$464/0x000000030060b690.run(Unknown Source:-1)
      at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446)
      at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:570)
      at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
      at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
      at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
      at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
      at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
      at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
      at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
      at com.intellij.ide.IdeEventQueueKt$$Lambda$458/0x0000000300608250.run(Unknown Source:-1)
      at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
      at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
      at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
      at com.intellij.ide.IdeEventQueue$$Lambda$449/0x00000003005fc218.run(Unknown Source:-1)
      at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
      at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:92)