Illuminated Cloud Freezes and IntelliJ needs to be force quit

Issue #681 resolved
Jonathan Dobbie created an issue

After using the program for a while, especially if I am commonly pushing to the server, IntelliJ will become unresponsive.

The logs quickly fill up to only contain lines that look like:

2017-08-10 13:45:25,598 [2300025] WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file. Looking up the tree.

I do not have steps to cause it to reproduce :(

Comments (29)

  1. Scott Wells repo owner

    Yeah, I'm seeing the same thing every so often. Not sure what's changed to make it happen, but trust me that it's VERY high on my list as it's affecting my work day as well. Thanks for reporting so I have a case against which to investigate this!

  2. Scott Wells repo owner

    Quick update...I managed to get a more detailed log while this was occurring today on my own machine and have instrumented significantly more logging plus what I hope to be a recovery from this situation. I'm going to run with that enabled in the coming week and either get more info on the problem or see that it seems to be resolved. Once I have a good feel for it, I'll post a new build with whatever progress I've made.

  3. Jonathan Dobbie Account Deactivated reporter

    Hi Scott - I managed to grab the log right when it happened, before it destroyed itself with the same line. IntelliJ is using 1.49GB of RAM, and the system has about 4GB free

    2017-08-15 13:32:51,785 [7692548]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:33:07,162 [7707925]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:33:16,188 [7716951]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:33:20,891 [7721654]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:33:30,230 [7730993]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:33:37,107 [7737870]   INFO - er.ForceComMetadataApiDeployer - Starting deployment with a polling interval of 2000 milliseconds.
    2017-08-15 13:33:52,952 [7753715]   INFO - er.ForceComMetadataApiDeployer - Deployment status = SUCCEEDED
    2017-08-15 13:33:52,953 [7753716]   INFO - er.ForceComMetadataApiDeployer - Regenerating the OST entries for { AccountLedger__c }.
    2017-08-15 13:34:18,895 [7779658]   INFO - g.FileBasedIndexProjectHandler - Reindexing refreshed files: 1494 to update, calculated in 286ms
    2017-08-15 13:34:29,816 [7790579]   INFO - .diagnostic.PerformanceWatcher - Reindexing refreshed files took 10920ms; general responsiveness: ok; EDT responsiveness: ok
    2017-08-15 13:38:38,609 [8039372]   INFO - agnostic.FrequentEventDetector - Too many events posted, #1. Event: java.awt.event.ComponentEvent[COMPONENT_RESIZED (-140,-19 0x0)] on InternalBackload
    java.lang.Throwable
        at com.intellij.openapi.diagnostic.FrequentEventDetector.eventHappened(FrequentEventDetector.java:74)
        at com.intellij.ide.IdeEventQueue.doPostEvent(IdeEventQueue.java:1156)
        at com.intellij.ide.IdeEventQueue.postEvent(IdeEventQueue.java:1147)
        at java.awt.Component.notifyNewBounds(Component.java:2368)
        at java.awt.Component.reshape(Component.java:2324)
        at javax.swing.JComponent.reshape(JComponent.java:4207)
        at java.awt.Component.setBounds(Component.java:2269)
        at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:161)
        at com.intellij.util.ui.tree.WideSelectionTreeUI$4.paintComponent(WideSelectionTreeUI.java:419)
        at javax.swing.plaf.basic.BasicTreeUI.paintRow(BasicTreeUI.java:1540)
        at com.intellij.util.ui.tree.WideSelectionTreeUI.paintRow(WideSelectionTreeUI.java:360)
        at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1224)
        at com.intellij.util.ui.tree.WideSelectionTreeUI.paint(WideSelectionTreeUI.java:388)
        at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
        at javax.swing.JComponent.paintComponent(JComponent.java:780)
        at com.intellij.ui.treeStructure.Tree.paintComponent(Tree.java:352)
        at javax.swing.JComponent.paint(JComponent.java:1056)
        at com.intellij.ui.treeStructure.Tree.paint(Tree.java:266)
        at javax.swing.JComponent.paintChildren(JComponent.java:889)
        at javax.swing.JComponent.paint(JComponent.java:1065)
        at javax.swing.JViewport.paint(JViewport.java:728)
        at com.intellij.ui.components.JBViewport.paint(JBViewport.java:230)
        at javax.swing.JComponent.paintChildren(JComponent.java:889)
        at javax.swing.JComponent.paint(JComponent.java:1065)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:306)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
        at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
        at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
        at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
        at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
        at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
        at java.awt.EventQueue.access$500(EventQueue.java:98)
        at java.awt.EventQueue$3.run(EventQueue.java:715)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
        at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:821)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    
    2017-08-15 13:38:51,912 [8052675]   INFO - ellij.project.impl.ProjectImpl - 22 project components initialized in 49 ms
    2017-08-15 13:38:53,923 [8054686]   INFO -  #git4idea.commands.GitHandler - [internal-sfdc-heap] git -c core.quotepath=false add --ignore-errors -- stripe-ingestion/src/classes/AccountLedgerItems.cls
    2017-08-15 13:38:54,516 [8055279]   INFO - der.ForceComToolingApiDeployer - Using the tooling API to create ApexClass AccountLedgerItems.
    2017-08-15 13:38:54,729 [8055492]   INFO - ontentsSynchronizationListener - The metadata subscription for module 'internal-sfdc-heap' was updated:
    
    ApexClass
     AccountLedgerItems [ADD]
    
    2017-08-15 13:38:55,626 [8056389]   INFO -  #git4idea.commands.GitHandler - [internal-sfdc-heap] git -c core.quotepath=false add --ignore-errors -- stripe-ingestion/src/classes/AccountLedgerItems.cls-meta.xml
    2017-08-15 13:38:57,112 [8057875]   INFO - der.ForceComToolingApiDeployer - Starting deployment with a polling interval of 1000 milliseconds.
    2017-08-15 13:38:59,295 [8060058]   INFO - agnostic.FrequentEventDetector - Too many events posted, #2. Event: java.awt.event.ComponentEvent[COMPONENT_MOVED (100,665 176x19)] on IOpportunitiesSelector
    java.lang.Throwable
        at com.intellij.openapi.diagnostic.FrequentEventDetector.eventHappened(FrequentEventDetector.java:74)
        at com.intellij.ide.IdeEventQueue.doPostEvent(IdeEventQueue.java:1156)
        at com.intellij.ide.IdeEventQueue.postEvent(IdeEventQueue.java:1147)
        at java.awt.Component.notifyNewBounds(Component.java:2373)
        at java.awt.Component.reshape(Component.java:2324)
        at javax.swing.JComponent.reshape(JComponent.java:4207)
        at java.awt.Component.setBounds(Component.java:2269)
        at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:137)
        at com.intellij.util.ui.tree.WideSelectionTreeUI$4.paintComponent(WideSelectionTreeUI.java:419)
        at javax.swing.plaf.basic.BasicTreeUI.paintRow(BasicTreeUI.java:1540)
        at com.intellij.util.ui.tree.WideSelectionTreeUI.paintRow(WideSelectionTreeUI.java:360)
        at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1224)
        at com.intellij.util.ui.tree.WideSelectionTreeUI.paint(WideSelectionTreeUI.java:388)
        at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
        at javax.swing.JComponent.paintComponent(JComponent.java:780)
        at com.intellij.ui.treeStructure.Tree.paintComponent(Tree.java:352)
        at javax.swing.JComponent.paint(JComponent.java:1056)
        at com.intellij.ui.treeStructure.Tree.paint(Tree.java:266)
        at javax.swing.JComponent.paintChildren(JComponent.java:889)
        at javax.swing.JComponent.paint(JComponent.java:1065)
        at javax.swing.JViewport.paint(JViewport.java:728)
        at com.intellij.ui.components.JBViewport.paint(JBViewport.java:230)
        at javax.swing.JComponent.paintChildren(JComponent.java:889)
        at javax.swing.JComponent.paint(JComponent.java:1065)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:306)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
        at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
        at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
        at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
        at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
        at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
        at java.awt.EventQueue.access$500(EventQueue.java:98)
        at java.awt.EventQueue$3.run(EventQueue.java:715)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
        at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:821)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    
    2017-08-15 13:39:08,747 [8069510]   INFO -  #git4idea.commands.GitHandler - [internal-sfdc-heap] git -c core.quotepath=false add --ignore-errors -- stripe-ingestion/src/classes/AccountLedgerItemsSelector.cls
    2017-08-15 13:39:09,042 [8069805]   INFO - der.ForceComToolingApiDeployer - Using the tooling API to create ApexClass AccountLedgerItemsSelector.
    2017-08-15 13:39:10,201 [8070964]   INFO - ontentsSynchronizationListener - The metadata subscription for module 'internal-sfdc-heap' was updated:
    
    ApexClass
     AccountLedgerItemsSelector [ADD]
    
    2017-08-15 13:39:10,978 [8071741]   INFO - der.ForceComToolingApiDeployer - Starting deployment with a polling interval of 1000 milliseconds.
    2017-08-15 13:39:11,088 [8071851]   INFO -  #git4idea.commands.GitHandler - [internal-sfdc-heap] git -c core.quotepath=false add --ignore-errors -- stripe-ingestion/src/classes/AccountLedgerItemsSelector.cls-meta.xml
    2017-08-15 13:40:41,197 [8161960]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:41:42,953 [8223716]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:42:54,543 [8295306]   INFO - yhome.idea.vim.ui.ExEntryPanel - deactivate
    2017-08-15 13:43:18,867 [8319630]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,868 [8319631]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,868 [8319631]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,868 [8319631]  ERROR - on.CompletionProgressIndicator - Element: class com.illuminatedcloud.intellij.psi.impl.ApexClassDeclarationImpl because: parent is null
    invalidated at: see attachment
    com.intellij.psi.PsiInvalidElementAccessException: Element: class com.illuminatedcloud.intellij.psi.impl.ApexClassDeclarationImpl because: parent is null
    invalidated at: see attachment
        at com.intellij.psi.impl.source.SubstrateRef$1.getNode(SubstrateRef.java:65)
        at com.intellij.extapi.psi.StubBasedPsiElementBase.getNode(StubBasedPsiElementBase.java:147)
        at com.intellij.extapi.psi.ASTDelegatePsiElement.getFirstChild(ASTDelegatePsiElement.java:101)
        at com.intellij.psi.impl.PsiElementBase.findChildByClass(PsiElementBase.java:301)
        at com.illuminatedcloud.intellij.psi.impl.ApexClassDeclarationImpl.getNameIdentifier(SourceFile:62)
        at com.illuminatedcloud.intellij.psi.impl.ApexDeclarationMixin.getName(SourceFile:172)
        at com.illuminatedcloud.intellij.psi.impl.ApexDeclarationMixin.getFullName(SourceFile:197)
        at com.illuminatedcloud.intellij.psi.impl.ApexExpressionType.<init>(SourceFile:121)
        at com.illuminatedcloud.intellij.psi.stub.StubApexFieldDeclaration.getType(SourceFile:156)
        at com.illuminatedcloud.intellij.psi.impl.ApexFieldDeclarationMixin.doGetExpressionType(SourceFile:52)
        at com.illuminatedcloud.intellij.psi.impl.ApexDeclarationMixin$2.compute(SourceFile:138)
        at com.intellij.psi.util.CachedValuesManager.lambda$getCachedValue$0(CachedValuesManager.java:140)
        at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:49)
        at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:222)
        at com.intellij.psi.impl.PsiCachedValue.getValueWithLock(PsiCachedValue.java:60)
        at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:38)
        at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:87)
        at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:139)
        at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:126)
        at com.illuminatedcloud.intellij.psi.impl.ApexDeclarationMixin.getExpressionType(SourceFile:132)
        at com.illuminatedcloud.intellij.psi.reference.ApexDeclarationReference.createLookupElement(SourceFile:167)
        at com.illuminatedcloud.intellij.psi.reference.ApexDeclarationReference.createLookupElement(SourceFile:128)
        at com.illuminatedcloud.intellij.completion.ApexVariantsCompletionRule.doGetCompletions(SourceFile:209)
        at com.illuminatedcloud.intellij.completion.ApexCompletionRule.getCompletions(SourceFile:390)
        at com.illuminatedcloud.intellij.completion.ApexCompletionContext.getCompletions(SourceFile:222)
        at com.illuminatedcloud.intellij.completion.ApexCompletionProvider.getCompletions(SourceFile:2055)
        at com.illuminatedcloud.intellij.completion.ApexCompletionProvider.addCompletions(SourceFile:2021)
        at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
        at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:150)
        at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:81)
        at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:149)
        at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:142)
        at com.intellij.codeInsight.template.impl.LiveTemplateCompletionContributor$2.addCompletions(LiveTemplateCompletionContributor.java:88)
        at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
        at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:150)
        at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:81)
        at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:110)
        at com.intellij.codeInsight.completion.CompletionProgressIndicator.a(CompletionProgressIndicator.java:839)
        at com.intellij.codeInsight.completion.CompletionProgressIndicator.access$600(CompletionProgressIndicator.java:92)
        at com.intellij.codeInsight.completion.CompletionProgressIndicator$1CalculateItems.run(CompletionProgressIndicator.java:821)
        at com.intellij.codeInsight.completion.AsyncCompletion.b(CompletionThreading.java:108)
        at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:939)
        at com.intellij.codeInsight.completion.AsyncCompletion.a(CompletionThreading.java:105)
        at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:170)
        at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:548)
        at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
        at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
        at com.intellij.codeInsight.completion.AsyncCompletion.a(CompletionThreading.java:103)
        at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:343)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    2017-08-15 13:43:18,868 [8319631]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,869 [8319632]  ERROR - on.CompletionProgressIndicator - IntelliJ IDEA 2017.2.1  Build #IU-172.3544.35
    2017-08-15 13:43:18,869 [8319632]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,869 [8319632]  ERROR - on.CompletionProgressIndicator - JDK: 1.8.0_152-release
    2017-08-15 13:43:18,870 [8319633]  ERROR - on.CompletionProgressIndicator - VM: OpenJDK 64-Bit Server VM
    2017-08-15 13:43:18,870 [8319633]  ERROR - on.CompletionProgressIndicator - Vendor: JetBrains s.r.o
    2017-08-15 13:43:18,870 [8319633]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,870 [8319633]  ERROR - on.CompletionProgressIndicator - OS: Mac OS X
    2017-08-15 13:43:18,870 [8319633]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,870 [8319633]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    2017-08-15 13:43:18,871 [8319634]   WARN - .intellij.psi.util.ApexPsiUtil - Caught an invalid element access exception trying to find the containing file.  Looking up the tree.
    
  4. Scott Wells repo owner

    Thanks, Jonathan! That last one is probably related to the root cause. I'm actually running a build this week myself that includes a prospective fix and, if/when it happens, WAY more diagnostic data. I'll correlate what you've included here with my local changes and see if they would have addressed it. I'll plan to put this into a new build next Monday, but if you want access to it earlier than that I can post a pre-release build here for you to try as well. Just let me know if you're interested and I'll post it if so.

  5. Scott Wells repo owner

    FYI, the first prospective fix improved the situation but didn't resolve it. I'm trying out another prospective fix this week and if it looks good, I'll release it next week.

  6. Scott Wells repo owner

    Oh man...that's absolutely not what I want to hear. Okay, the prospective fix I had didn't resolve it 100%, but it did seem to make it better. I was having to restart once every couple of days and now it's maybe once a week. Please trust that I'm committed to eliminating this issue...the problem is that with entropy-type issues like this, you can only really debug them when it's in that state (or ideally when it first transitions into that state). At this point my fixes are more reactive...trying to put things back into a good state when it happens vs. trying to avoid getting into that state (which I'm still hoping to do but I know that may take more time).

    Jonny, since this is happening frequently for you, would you be open to taking a test build with the latest prospective fix to provide feedback on whether it resolves (or minimally helps) with the issue and/or causes any negative side-effects for you? Same offer is open to others as well. I can create a build shortly and attach it here. That will likely be significantly more productive than waiting until I can release it and then finding that it's not quite the droid we're looking for...

    Let me know and I can spin up a build that's basically the latest official release plus the latest attempt to help with this issue.

  7. Jonny Power (he/him)

    I would love a test build to see if it mitigates the issue. Thanks @RoseSilverSoftware !

  8. Scott Wells repo owner

    Okay, that would help tremendously, Jonny. I really want this one fixed (or minimally made so infrequent as to be a minor annoyance at worst) as well, and having you help verify the fix (or more likely several rounds of attempted fixes before we corner it) will really help everyone, I think! I'll attach a test build and instructions on how to use it here shortly.

  9. Scott Wells repo owner

    Okay, let's try this for starters. It tells all in-memory caches to clear and rebuilds the stub index when it gets into this state. Because this is a reactive fix vs. a proactive fix, if this is happening to you multiple times each day it may (hopefully) keep you from having to restart the IDE, but it may instead cause the IDE to pause while reindexing instead. While that may be better, it's obviously not ideal. Right now I'm just trying to a) keep you from having to completely restart; b) corner the issue so I can work toward a proactive/permanent fix.

    To install this download the attached archive and then use Settings/Preferences>Plugins>Install plugin from disk.

    It would also be helpful if you'd add the following under Help>Debug Log Settings so that when this does happen, there's a good log for it:

    #com.illuminatedcloud.intellij.index.IlluminatedCloudIndexUtil
    #com.illuminatedcloud.intellij.psi.impl.ApexDeclarationMixin
    #com.illuminatedcloud.intellij.psi.util.ApexPsiUtil
    

    Your logs will be quite noisy as a result, but if/when you see this behavior occur again, I'd like to know about the experience (did you have to restart the IDE? if so, did closing/reopening the project instead resolve it for you? if you didn't, how disruptive was the pause for reindexing?) and I'd like to see the logs (Help>Show Log in Explorer/Finder/Files).

    Thanks much for the patience, understanding, and assistance while I debug this! Hopefully this will help lead to a relatively quick resolution.

  10. Scott Wells repo owner

    The prospective fix/improvement from the attached build is now part of 1.8.0.1. Please let me know your experience with it. My guess is that it's not a full fix so I'm going to leave this issue open until a full fix (even if it's reactive) is in place, but I wanted to let you know that it's safe to update to 1.8.0.1 without losing this.

  11. Derek Wiers

    @RoseSilverSoftware , is this a duplicate or related to #669? (perhaps 669 is just a specific triggering of the same issue?)

  12. Scott Wells repo owner

    It is, Derek. Thanks for pointing that out! I resolved that one as a duplicate of this one since the majority of the troubleshooting discussion has happened here. Basically any issue that looks like "Caught in invalid element access...looking up the tree" is an instance of this issue. The reactive fix that's in 1.8.0.1 is to flush local caches and rebuild the stub index automatically, hopefully putting things back into ship-shape.

  13. Jonny Power (he/him)

    @RoseSilverSoftware I invalidated the cache / indexes on Friday and have only seen the issue once since so didn't get around to trying out the build. It's been greatly improved since invalidating. I look forward to updating.

    In general as well; I really appreciate how responsive you are with this product. Thank you.

  14. Scott Wells repo owner

    Gotcha. Yeah, it's not surprising that completely rebuilding caches would help if your caches had atrophied significantly. Hopefully between an infrequent need to do that and the changes I've put into this build, it will be significantly less of a nuisance.

  15. Scott Wells repo owner

    Anything to report on the prospective fix that was added in recent builds? Fixed? Improved? Hopefully not worse?!

  16. Derek Wiers

    Not worse, that's for sure. I did invalidate the cache on one of my projects a few days ago - mostly just as a preventative measure. Let me try regening the SObject OST here and see if it blows up...

  17. Scott Wells repo owner

    Okay. I'm going to resolve this but certainly understand that it may well be reopened. For those of you who have been seeing this issue, please just keep me posted if you see them continue.

  18. Scott Wells repo owner
    • changed status to open

    I finally managed to corner this while it was happening and connected the debugger. I know the root cause and the fix. I'll get it into the next build.

  19. Scott Wells repo owner

    FYI, 1.8.1.2 is ready and I'll release it tomorrow morning. I don't want to take a chance on a mad scramble today knowing that my family absolutely gets my full attention this evening for trick-or-treating.

  20. Scott Wells repo owner

    Delivered in 1.8.1.2. Please let me know if you see any further instances of this after updating to this version or higher.

  21. Jason Curry

    FYI, I'm running 1.8.1.2 and I'm still seeing freezes and have to do a force-quit fairly often. I'll try to grab a log next time it happens.

    Mine occurred when attempting to verify a password and security token on an existing project.

    • I attempted to save a file
    • Received the message that the password was invalid
    • Chose Yes to the option to update the account
    • Went to the browser, changed the password, and received the new security token.
    • Updated the account info, clicked the Test button.
    • The screen flickered, and I never received a success or failure message.
    • Clicked OK and it locked up.
  22. Scott Wells repo owner

    Ah, okay. That sounds a little different from the other freezes that this ticket has been tracking. The ones here were around caches & indices getting into a bad state. What you're describing sounds like a deadlock in that specific portion of the product. Let me take a look and try to reproduce it, or minimally see if I can understand how/why that might happen. Thanks for letting me know, Jason, and sorry for the issue!

  23. Log in to comment