Retrieve Metadata causes IntelliJ to Crash (IC2)

Issue #1852 resolved
Arnab KarSarkar created an issue

I am using Salesforce DX project structure and I am seeing that 90% of the time, if I click on Retrieve Metadata option, IntelliJ crashes without any warning.  If I repeat this for 5/6 times (very annoying), it works but the box is super slow.

I am noticing this only for sfdx connections. If I use normal connections it works perfectly.

I can't share logs because of my company policy.. but here is the exception I got from the log.

2021-03-18 11:19:37,637 [92673003]  DEBUG - tellij.builder.ForceComBuilder -   Creating a metadata subscription based on locally-resident metadata files. 
2021-03-18 11:19:37,806 [92673172]  ERROR - il.indexing.FileBasedIndexImpl - Indexing process should not rely on non-indexed file data.
Indexing file = /Users/arnabkarsakar/Documents/IdeaProjects/Business-Systems-New/force-app/main/default/classes/MyExampleClass.cls, file id = 169857, queried file id = 131240 
java.lang.Throwable: Indexing process should not rely on non-indexed file data.
Indexing file = /Users/arnabkarsakar/Documents/IdeaProjects/Business-Systems-New/force-app/main/default/classes/MyExampleClass.cls, file id = 169857, queried file id = 131240
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:143)
    at com.intellij.indexing.shared.platform.impl.MergedInvertedIndex.getIndexedFileData(MergedInvertedIndex.java:162)
    at com.intellij.psi.stubs.StubProcessingHelper.retrieveStubIdList(StubProcessingHelper.java:33)
    at com.intellij.psi.stubs.StubIndexImpl.lambda$processElements$4(StubIndexImpl.java:311)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:310)
    at com.intellij.psi.stubs.StubIndex.processElements(StubIndex.java:52)
    at com.intellij.psi.stubs.StubIndex.get(StubIndex.java:42)
    at com.intellij.psi.stubs.AbstractStubIndex.get(AbstractStubIndex.java:22)
    at com.illuminatedcloud.intellij.index.AbstractApexDeclarationStubIndex.get(SourceFile:32)
    at com.illuminatedcloud.intellij.index.AbstractApexDeclarationStubIndex.findDeclaration(SourceFile:45)
    at com.illuminatedcloud.intellij.index.ApexTypeDeclarationShortNameIndex.lambda$getTypeDeclarations$1(SourceFile:113)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:76)
    at com.illuminatedcloud.intellij.index.ApexTypeDeclarationShortNameIndex.getTypeDeclarations(SourceFile:87)
    at com.illuminatedcloud.intellij.index.ApexTypeDeclarationShortNameIndex.getTypeDeclarations(SourceFile:153)
    at com.illuminatedcloud.intellij.psi.util.ApexDeclarationUtil.fastFindTypeDeclaration(SourceFile:271)
    at com.illuminatedcloud.intellij.psi.util.ApexDeclarationUtil.findTypeDeclaration(SourceFile:145)
    at com.illuminatedcloud.intellij.psi.impl.ApexClassDeclarationMixin.lambda$getBaseClassDeclaration$1(SourceFile:219)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:153)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:76)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:120)
    at com.illuminatedcloud.intellij.psi.impl.ApexClassDeclarationMixin.getBaseClassDeclaration(SourceFile:193)
    at com.illuminatedcloud.intellij.psi.impl.ApexClassDeclarationMixin.getBaseDeclarations(SourceFile:366)
    at com.illuminatedcloud.intellij.index.ApexDerivedDeclarationIndex.map(SourceFile:136)
    at com.illuminatedcloud.intellij.index.ApexDerivedDeclarationIndex.map(SourceFile:42)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:306)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:298)
    at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:157)
    at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:41)
    at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:225)
    at com.intellij.indexing.shared.platform.impl.MergedInvertedIndex.updateBaseIndex(MergedInvertedIndex.java:267)
    at com.intellij.indexing.shared.platform.impl.MergedInvertedIndex.mapInputAndPrepareUpdate(MergedInvertedIndex.java:81)
    at com.intellij.indexing.shared.platform.impl.MergedInvertedIndex.mapInputAndPrepareUpdate(MergedInvertedIndex.java:36)
    at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1390)
    at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$25(FileBasedIndexImpl.java:1295)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:557)
    at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1265)
    at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1217)
    at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1188)
    at com.intellij.util.indexing.FileBasedIndexImpl.access$500(FileBasedIndexImpl.java:94)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1444)
    at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1441)
    at com.intellij.util.indexing.UpdateTask.process(UpdateTask.java:77)
    at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:46)
    at com.intellij.util.indexing.FileBasedIndexImpl.forceUpdate(FileBasedIndexImpl.java:1463)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:702)
    at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:215)
    at com.intellij.util.indexing.FileBasedIndexEx.getFileData(FileBasedIndexEx.java:155)
    at com.intellij.util.indexing.FileBasedIndexImpl.getFileData(FileBasedIndexImpl.java:1025)
    at com.intellij.swagger.index.OpenapiSpecificationContentIndex$Companion.getContentsForFile(OpenapiSpecificationContentIndex.kt:39)
    at com.intellij.swagger.index.OpenapiSpecificationContentIndex$Companion.getContentsForFile(OpenapiSpecificationContentIndex.kt:35)
    at com.intellij.swagger.index.OpenapiSpecificationContentIndexKt.isFileOfType(OpenapiSpecificationContentIndex.kt:115)
    at com.intellij.swagger.index.OpenapiSpecificationContentIndexKt.isSpecificationFile(OpenapiSpecificationContentIndex.kt:107)
    at com.intellij.swagger.refactoring.usages.SwaggerFindUsagesHandlerFactory.canFindUsages(SwaggerFindUsagesHandlerFactory.kt:13)
    at com.intellij.find.findUsages.FindUsagesManager.canFindUsages(FindUsagesManager.java:101)
    at com.intellij.find.impl.FindManagerImpl.canFindUsages(FindManagerImpl.java:901)
    at com.intellij.find.findUsages.DefaultUsageTargetProvider.getTargets(DefaultUsageTargetProvider.java:16)
    at com.intellij.usages.UsageTargetUtil.findUsageTargets(UsageTargetUtil.java:51)
    at com.intellij.usages.UsageTargetUtil.findUsageTargets(UsageTargetUtil.java:32)
    at com.intellij.ide.impl.dataRules.UsageTargetsRule.getData(UsageTargetsRule.java:13)
    at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRule$2(DataManagerImpl.java:131)
    at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:96)
    at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:70)
    at com.intellij.ide.impl.DataManagerImpl.access$200(DataManagerImpl.java:48)
    at com.intellij.ide.impl.DataManagerImpl$MyDataContext.calcData(DataManagerImpl.java:368)
    at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:360)
    at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:339)
    at com.intellij.openapi.actionSystem.DataContextWrapper.getData(DataContextWrapper.java:38)
    at com.intellij.openapi.actionSystem.AnActionEvent$1.getData(AnActionEvent.java:164)
    at com.intellij.openapi.actionSystem.DataContext.getData(DataContext.java:40)
    at com.intellij.openapi.actionSystem.AnActionEvent.getData(AnActionEvent.java:184)
    at com.intellij.find.actions.ShowUsagesAction.update(ShowUsagesAction.java:156)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:179)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doUpdate(ActionUpdater.java:453)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$1(ActionUpdater.java:94)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:134)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$2(ActionUpdater.java:95)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:435)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:297)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$19(ActionUpdater.java:276)
    at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1611)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:276)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:186)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:160)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupWithTimeout$11(ActionUpdater.java:202)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:56)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.jetbrains.rdserver.BackendProgressManager.executeProcessUnderProgress(BackendProgressManager.kt:75)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:56)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.withTimeout(ProgressIndicatorUtils.java:307)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroupWithTimeout(ActionUpdater.java:202)
    at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroupWithTimeout(Utils.java:79)
    at com.intellij.ui.mac.touchbar.TouchBar.updateActionItems(TouchBar.java:460)
    at com.intellij.ui.mac.touchbar.TouchBar$Updater$1.run(TouchBar.java:539)
    at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1744)
    at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1733)
    at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1717)
    at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
    at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:971)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:841)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:452)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:451)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:505)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2021-03-18 11:19:37,807 [92673173]  ERROR - il.indexing.FileBasedIndexImpl - IntelliJ IDEA 2020.2.3  Build #IU-202.7660.26 
2021-03-18 11:19:37,807 [92673173]  ERROR - il.indexing.FileBasedIndexImpl - JDK: 11.0.8; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 
2021-03-18 11:19:37,807 [92673173]  ERROR - il.indexing.FileBasedIndexImpl - OS: Mac OS X 
2021-03-18 11:19:37,807 [92673173]  ERROR - il.indexing.FileBasedIndexImpl - Last Action: EditorCopy 

Comments (5)

  1. Scott Wells repo owner

    Hi. That stack isn't likely related to an IDE crash, though it deserves its own time, of course. When you say that it's crashing, though, do you mean that the entire IDE just goes away, or do you mean that you're getting an error message? If you're getting a full-on crash of the host process, I have a suspicion about what it might be. There is an issue with the JetBrains OpenJDK on certain Intel hardware. You can find out more here:

    https://youtrack.jetbrains.com/issue/JBR-2310

    I have a Surface Laptop 3 and had also been experiencing numerous crashes of both the IDE and even the entire OS until a recent firmware update that included a newer version of the Intel microcode.

    The workaround is to add these JVM arguments for the IDE:

    -XX:-TieredCompilation
    -XX:TieredStopAtLevel=1
    -XX:UseAVX=2
    

    using Help>Edit Custom VM Options. Please try that and let me know if it doesn't resolve the issue for you. If it doesn't, I'll want to see any crash files that are located in the same directory as idea.log.

  2. Arnab KarSarkar reporter

    Thanks Scott!! I meant the IDE just goes away without any error.

    I will just update the JVM options and will try again. Will keep you posted.

  3. Scott Wells repo owner

    Hi, Arnab. Can you also make sure that you're on the latest build of the product? The stack trace in the original issue description doesn't align with current source code, and there were some fixes put in place for the underlying issue in that stack trace.

  4. Scott Wells repo owner

    Resolving this in hopes that the JVM args help with the IDE process crash and updating the plugin to the latest eliminates the included stack trace. If either/both continues to be an issue, please reopen with details.

  5. Log in to comment