Slow LWC editing and frequent Invalid CachedValue errors

Issue #1693 resolved
Xander Victory created an issue

Editing the HTML for many of my LWCs is often very laggy, sometimes an Enter keypress takes ~2seconds to actually make a new line. I’m not sure how exactly to debug that.

At the same time, I get frequent CV errors coming up in the log

java.lang.Throwable: Incorrect CachedValue use: same CV with different captured context, this can cause unstable results and invalid PSI access.
Field arg$1 in class com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor$$Lambda$4441/0x0000000802540c40 has non-equivalent values:
  com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor@57f5e50 (com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor) and
  com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor@395cc411 (com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor)
Either make `equals()` hold for these values, or avoid this dependency, e.g. by extracting CV provider into a static method.
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:143)
    at com.intellij.util.CachedValueStabilityChecker.complain(CachedValueStabilityChecker.java:163)
    at com.intellij.util.CachedValueStabilityChecker.checkFieldEquivalence(CachedValueStabilityChecker.java:130)
    at com.intellij.util.CachedValueStabilityChecker.checkProvidersEquivalent(CachedValueStabilityChecker.java:81)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:71)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor.getCustomComponentDeclaration(SourceFile:228)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor.getDeclaration(SourceFile:196)
    at com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.lambda$getCustomLightningWebComponent$6(SourceFile:817)
    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.lightning.LightningWebComponentsUtil.getCustomLightningWebComponent(SourceFile:808)
    at com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.getLightningWebComponent(SourceFile:759)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptorProvider.getDescriptor(SourceFile:58)
    at com.intellij.psi.impl.source.xml.XmlTagDelegate.computeElementDescriptor(XmlTagDelegate.java:458)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.psi.impl.source.xml.XmlTagDelegate$1.compute(XmlTagDelegate.java:437)
    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.intellij.psi.impl.source.xml.XmlTagDelegate.getDescriptor(XmlTagDelegate.java:433)
    at com.intellij.psi.impl.source.xml.XmlTagImpl.getDescriptor(XmlTagImpl.java:129)
    at com.intellij.codeInspection.htmlInspections.HtmlUnknownTagInspectionBase.checkTag(HtmlUnknownTagInspectionBase.java:97)
    at com.intellij.codeInspection.htmlInspections.HtmlLocalInspectionTool$1.visitXmlToken(HtmlLocalInspectionTool.java:67)
    at com.intellij.psi.impl.source.xml.XmlTokenImpl.accept(XmlTokenImpl.java:29)
    at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
    at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:56)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:294)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$3(LocalInspectionsPass.java:263)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:155)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:147)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$4(LocalInspectionsPass.java:262)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$5(LocalInspectionsPass.java:262)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:162)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
    at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
    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.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
    at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

    java.lang.Throwable: Incorrect CachedValue use: same CV with different captured context, this can cause unstable results and invalid PSI access.
Field arg$1 in class com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor$$Lambda$4441/0x0000000802540c40 has non-equivalent values:
  com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor@43b0e21b (com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor) and
  com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor@78c74bf0 (com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor)
Either make `equals()` hold for these values, or avoid this dependency, e.g. by extracting CV provider into a static method.
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:143)
    at com.intellij.util.CachedValueStabilityChecker.complain(CachedValueStabilityChecker.java:163)
    at com.intellij.util.CachedValueStabilityChecker.checkFieldEquivalence(CachedValueStabilityChecker.java:130)
    at com.intellij.util.CachedValueStabilityChecker.checkProvidersEquivalent(CachedValueStabilityChecker.java:81)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:71)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor.getCustomComponentDeclaration(SourceFile:228)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor.getDeclaration(SourceFile:196)
    at com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.lambda$getCustomLightningWebComponent$6(SourceFile:817)
    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.lightning.LightningWebComponentsUtil.getCustomLightningWebComponent(SourceFile:808)
    at com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.getLightningWebComponent(SourceFile:759)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptorProvider.getDescriptor(SourceFile:58)
    at com.intellij.psi.impl.source.xml.XmlTagDelegate.computeElementDescriptor(XmlTagDelegate.java:458)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.psi.impl.source.xml.XmlTagDelegate$1.compute(XmlTagDelegate.java:437)
    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.intellij.psi.impl.source.xml.XmlTagDelegate.getDescriptor(XmlTagDelegate.java:433)
    at com.intellij.psi.impl.source.xml.XmlTagImpl.getDescriptor(XmlTagImpl.java:129)
    at com.intellij.psi.impl.source.xml.XmlAttributeDelegate.getDescriptionImpl(XmlAttributeDelegate.java:64)
    at com.intellij.psi.impl.source.xml.XmlAttributeDelegate.lambda$getDescriptor$0(XmlAttributeDelegate.java:53)
    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.intellij.psi.impl.source.xml.XmlAttributeDelegate.getDescriptor(XmlAttributeDelegate.java:51)
    at com.intellij.psi.impl.source.xml.XmlAttributeImpl.getDescriptor(XmlAttributeImpl.java:207)
    at com.intellij.xml.util.XmlEnumeratedValueReferenceProvider.getDescriptor(XmlEnumeratedValueReferenceProvider.java:85)
    at com.intellij.xml.util.XmlEnumeratedValueReferenceProvider.getReferencesByElement(XmlEnumeratedValueReferenceProvider.java:63)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.getReferences(ReferenceProvidersRegistryImpl.java:202)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.mapNotEmptyReferencesFromProviders(ReferenceProvidersRegistryImpl.java:165)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl.doGetReferencesFromProviders(ReferenceProvidersRegistryImpl.java:145)
    at com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry.lambda$getReferencesFromProviders$0(ReferenceProvidersRegistry.java:40)
    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.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry.getReferencesFromProviders(ReferenceProvidersRegistry.java:39)
    at com.intellij.psi.impl.source.xml.XmlAttributeValueImpl.getReferences(XmlAttributeValueImpl.java:89)
    at com.intellij.psi.impl.source.xml.XmlAttributeValueImpl.getReferences(XmlAttributeValueImpl.java:99)
    at com.intellij.codeInsight.daemon.impl.analysis.XmlPathReferenceInspection.checkRefs(XmlPathReferenceInspection.java:58)
    at com.intellij.codeInsight.daemon.impl.analysis.XmlPathReferenceInspection.access$000(XmlPathReferenceInspection.java:35)
    at com.intellij.codeInsight.daemon.impl.analysis.XmlPathReferenceInspection$1.visitXmlAttributeValue(XmlPathReferenceInspection.java:42)
    at com.intellij.psi.impl.source.xml.XmlAttributeValueImpl.accept(XmlAttributeValueImpl.java:46)
    at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
    at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:56)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:294)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$3(LocalInspectionsPass.java:263)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:155)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:147)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$4(LocalInspectionsPass.java:262)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$5(LocalInspectionsPass.java:262)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
    at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
    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.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
    at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

    java.lang.Throwable: Incorrect CachedValue use: same CV with different captured context, this can cause unstable results and invalid PSI access.
Field arg$1 in class com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor$$Lambda$4441/0x0000000802540c40 has non-equivalent values:
  com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor@4924b7ac (com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor) and
  com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor@141caa14 (com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor)
Either make `equals()` hold for these values, or avoid this dependency, e.g. by extracting CV provider into a static method.
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:143)
    at com.intellij.util.CachedValueStabilityChecker.complain(CachedValueStabilityChecker.java:163)
    at com.intellij.util.CachedValueStabilityChecker.checkFieldEquivalence(CachedValueStabilityChecker.java:130)
    at com.intellij.util.CachedValueStabilityChecker.checkProvidersEquivalent(CachedValueStabilityChecker.java:81)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:71)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor.getCustomComponentDeclaration(SourceFile:228)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptor.getDeclaration(SourceFile:196)
    at com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.lambda$getCustomLightningWebComponent$6(SourceFile:817)
    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.lightning.LightningWebComponentsUtil.getCustomLightningWebComponent(SourceFile:808)
    at com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.getLightningWebComponent(SourceFile:759)
    at com.illuminatedcloud.intellij.completion.LightningWebComponentsElementDescriptorProvider.getDescriptor(SourceFile:58)
    at com.intellij.psi.impl.source.xml.XmlTagDelegate.computeElementDescriptor(XmlTagDelegate.java:458)
    at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
    at com.intellij.psi.impl.source.xml.XmlTagDelegate$1.compute(XmlTagDelegate.java:437)
    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.intellij.psi.impl.source.xml.XmlTagDelegate.getDescriptor(XmlTagDelegate.java:433)
    at com.intellij.psi.impl.source.xml.XmlTagImpl.getDescriptor(XmlTagImpl.java:129)
    at com.intellij.xml.util.XmlRefCountHolder$IdGatheringRecursiveVisitor.visitXmlAttributeValue(XmlRefCountHolder.java:240)
    at com.intellij.psi.impl.source.xml.XmlAttributeValueImpl.accept(XmlAttributeValueImpl.java:46)
    at com.intellij.psi.PsiWalkingState.visit(PsiWalkingState.java:67)
    at com.intellij.psi.PsiWalkingState.visit(PsiWalkingState.java:24)
    at com.intellij.util.WalkingState.walkChildren(WalkingState.java:62)
    at com.intellij.util.WalkingState.elementStarted(WalkingState.java:49)
    at com.intellij.psi.PsiWalkingState.elementStarted(PsiWalkingState.java:76)
    at com.intellij.psi.XmlRecursiveElementWalkingVisitor.visitElement(XmlRecursiveElementWalkingVisitor.java:40)
    at com.intellij.xml.util.XmlRefCountHolder$IdGatheringRecursiveVisitor.visitElement(XmlRefCountHolder.java:177)
    at com.intellij.psi.PsiElementVisitor.visitFile(PsiElementVisitor.java:35)
    at com.intellij.psi.XmlRecursiveElementWalkingVisitor.visitFile(XmlRecursiveElementWalkingVisitor.java:58)
    at com.intellij.psi.XmlElementVisitor.visitXmlFile(XmlElementVisitor.java:26)
    at com.intellij.psi.impl.source.xml.XmlFileImpl.accept(XmlFileImpl.java:54)
    at com.intellij.xml.util.XmlRefCountHolder$1.lambda$compute$0(XmlRefCountHolder.java:61)
    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.xml.util.XmlRefCountHolder.getRefCountHolder(XmlRefCountHolder.java:79)
    at com.intellij.xml.util.XmlDuplicatedIdInspection$1.visitXmlAttributeValue(XmlDuplicatedIdInspection.java:53)
    at com.intellij.psi.impl.source.xml.XmlAttributeValueImpl.accept(XmlAttributeValueImpl.java:46)
    at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
    at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:56)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:294)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$3(LocalInspectionsPass.java:263)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:155)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:147)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$4(LocalInspectionsPass.java:262)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$5(LocalInspectionsPass.java:262)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
    at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:162)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1105)
    at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
    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.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
    at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
    at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:57)
    at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:49)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.visitPriorityElementsAndInit(LocalInspectionsPass.java:266)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.inspect(LocalInspectionsPass.java:191)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:113)
    at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:80)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:54)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:399)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:392)
    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.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:391)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:367)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:365)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:181)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

IntelliJ IDEA 2020.2 Build #IU-202.6397.94

Comments (54)

  1. Scott Wells repo owner

    Hmmmm....that's strange. Do you happen to have a component that reproduces this behavior consistently that could be shared (even if some level of obfuscation/anonymization is required)?

  2. Xander Victory reporter

    For the slowness alone, it seems to be something to do with custom sub-components. e.g. if I comment out the <c- elements in this snippet, the slowness goes away. It doesn’t appear to have triggered any CV errors yet.

    <!-- Time Sheet Quick Starts -->
    <template>
        <lightning-layout multiple-rows="true">
            <template if:true={quickEntriesUI.data}>
                <template for:each={quickEntriesUI.data} for:item="record">
                    <lightning-layout-item flexibility="grow" key={record.Id} class="slds-p-around_xx-small">
                        <c-timesheet-quick-start-entry entry={record}></c-timesheet-quick-start-entry>
                    </lightning-layout-item>
                </template>
            </template>
            <lightning-layout-item flexibility="grow" class="slds-p-around_xx-small">
                <button class="slds-button slds-button_neutral slds-button_stretch" onclick={showClonePrevious}>Clone Previous</button>
            </lightning-layout-item>
        </lightning-layout>
        <template if:true={showClonePopup}>
            <c-clone-previous-popup oncloseclonedialog={closeClonePopup}></c-clone-previous-popup>
        </template>
    </template>
    

  3. Scott Wells repo owner

    Thanks, Xander. Let me dig in a bit. Just knowing that it seems tied to the custom components should narrow the area of investigation. I wonder if there's something there that's being evaluated repeatedly as you're typing that could (and should) almost certainly be cached until/unless it changes. More info to come soon hopefully.

  4. Scott Wells repo owner

    Xander, can you please install the attached build and let me know whether it resolves the issues? Minimally I'm hoping it gets rid of the CV errors in the log, and I'm further hoping that by doing so, it gets the expected cache hit rate and addresses the performance issue you're seeing. Please let me know either way.

  5. Xander Victory reporter

    It does seem to improve things a little bit, but still noticeable lag. So far no CV errors (side note they seemed to also stop when I turned off idea.is.internal custom property), but they were never reliably produced to begin with.

    I ran it through VisualVM (sampling only IC2 classes), and it seems to primarily drill down to com.intellij.psi.search.FilenameIndex.getVirtualFilesByName () often via com.illuminatedcloud.intellij.lightning.LightningWebComponentsUtil.getCustomLightningWebComponent ()

  6. Scott Wells repo owner

    Xander, I'm trying to reproduce the latest behavior from your log and can't. Effectively what it's showing is that it's trying to populate the same cache value twice, once with no dependencies and once with the correct single dependency of the metadata file itself. Assuming that leads to a constant cache miss, that would explain the prevalence of getVirtualFilesByName in the profiler as that's used to find the metadata file in that cache read-through.

    What I don't understand is why this is happening for you and not me (or others). Is it possible that you have multiple copies of the same metadata in this project or something? Or are your source roots perhaps configured incorrectly? I'm just trying to figure out why it would behave this way for you. Ideally I'd like to reproduce the behavior and make IC more resilient to whatever is going on, but without being able to reproduce it any change I make to try to fix it is kind of shooting in the dark...

  7. Xander Victory reporter

    Damn, the worst kind of issue.

    • No duplicates of files
    • git is used
    • Partial std/custom object metadata files in project, full symbol table
    • source roots are default
    • Custom components have some or all of the following

      • @salesforce/schema/ field imports
      • Apex imports to @AuraEnabled methods
      • imports from a common module c/timesheetEditCommon

  8. Scott Wells repo owner

    Xander, at this point being able to reproduce the behavior is going to be critical. I've found one other situation in which the CV problem occurs, but it's not the same one you're seeing and it shouldn't cause the same type of performance issue you're experiencing.

    Do you think it would be possible to create a VERY simple standalone project with a dummy custom component or two that reproduces the behavior? That would be invaluable in getting to the bottom of this.

  9. Xander Victory reporter

    Yeah, I’ll give that a go. I understand how frustrating it is to try to fix an issue you can’t reproduce

  10. Xander Victory reporter

    @Scott Wells Apologies I’ve not got around to making a small repro. I have managed to reproduce it with the LWC Superbadge code though.

    Specifically the HTML for boatSearchResults, boatDetailTabs & boatAddReviewForm

    If you’ve not completed the badge I can email it to you privately (as the contents would allow completion of the badge with no effort)

  11. Xander Victory reporter

    Also, I did do some code diving, and the CV errors are only checked/complained about when running the IDE in internal mode, so I’ve disabled that as we’re unsure whether that’s actually why the cache isn't being used.

  12. Scott Wells repo owner

    That's great news, Xander. I have not completed that superbadge, so feel free to email it and I'll take a look at it in the coming week.

  13. Scott Wells repo owner

    Xander, I've been playing with what you sent and am not seeing the slow performance. I've just been doing some random edits in the three cited components and everything is humming along very nicely for me. Are there some particular types of edits that you're doing that result in this behavior consistently? Concrete examples would be wonderful since even rewriting these components verbatim isn't doing it for me.

  14. Xander Victory reporter

    Argh, frustrating. You can see it in action here - https://youtu.be/hmatyFL4pHY

    It’s a little intermittent, as you can see at the start it didn’t want to happen. I disabled a bunch of unnecessary plugins before recording to rule them out.

  15. Scott Wells repo owner

    Thanks for the video, and for what it's worth, I totally believe you that it's happening! It's just similarly frustrating for me when I can't reproduce it.

    I tried to do exactly what you do in that video...basically open a newline and than backspace to remove it repeatedly in different locations...and I still don't see it.

    Since you're using Ultimate Edition, let's use its built-in profiler to get a profiling snapshot of the behavior in action and see if that reveals any new insights. First, make sure that you have the bundled Performance Testing plugin enabled. Then use Help>Diagnostic Tools>Start CPU Usage Profiling, reproduce the issue repeatedly so that there's a sufficient sample set that the hotspots will show up in the snapshot, and finally use the corresponding menu option to stop profiling and capture the snapshot. Send me that snapshot for review if you don't mind. Fingers crossed that it shows something useful...

  16. Xander Victory reporter

    I’m leaning towards it being Garbage Collection related - I have 4gb max size for IDEA.

    Watching the memory usage in the status bar, it seems to drop after each 'freeze'. I have no idea why adding and removing blank lines would cause it to spike 300+ mb though

  17. Scott Wells repo owner

    Thanks, Xander. That actually does tell me something very useful. I've attached a test build for you to install. Can you please try it and see if it resolves the issue for you or not (of course, without causing any other issues)?

  18. Scott Wells repo owner

    Xander, either I didn't attach the right build or you didn't install the attached one accidentally. The stack trace in the latest snapshot still shows the call that I changed to a different indexed call.

    I'm attaching a new build that should be identical to the one I intended to attach today to be 100% sure it's the right one. Please download the attached archive and install it using Settings/Preferences>Plugins>Install plugin from disk (under the gear drop-down menu), then see if it changes the performance characteristics.

  19. Xander Victory reporter

    I was a little confused that there were two attachments showing (I downloaded the one without a comment) haha

  20. Scott Wells repo owner

    Hmmmm...I can't imagine why that would happen, but I just simplified the way that it determines whether a meta.xml file is for an LWC component dramatically. That's the only thing I could imagine might cause an indexing loop.

    Here's another build with that minor change and the case-insensitive filename index version number incremental to ensure that gets re-indexed automatically.

    If that causes another indexing issue, please completely rebuild indices. I just tried this on a few projects including some complex LWC ones with no issues, so I want to rule out a weird index state.

  21. Xander Victory reporter

    hmm looks like we can blame the an interaction with the Kotlin plugin, disabling it (and Ktor plugin) lets the indexing complete.

    Log from infinite looping run:

    2020-09-17 11:09:41,559 [      0]   INFO -        #com.intellij.idea.Main - ------------------------------------------------------ IDE STARTED ------------------------------------------------------ 
    2020-09-17 11:09:41,579 [     20]   INFO -        #com.intellij.idea.Main - IDE: IntelliJ IDEA (build #IU-202.6397.94, 27 Jul 2020 18:40) 
    2020-09-17 11:09:41,580 [     21]   INFO -        #com.intellij.idea.Main - OS: Windows 10 (10.0, amd64) 
    2020-09-17 11:09:41,580 [     21]   INFO -        #com.intellij.idea.Main - JRE: 11.0.7+10-b944.20 (JetBrains s.r.o.) 
    2020-09-17 11:09:41,580 [     21]   INFO -        #com.intellij.idea.Main - JVM: 11.0.7+10-b944.20 (OpenJDK 64-Bit Server VM) 
    2020-09-17 11:09:41,581 [     22]   INFO -        #com.intellij.idea.Main - JVM Args: exit -Xms128m -Xmx4096m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Dide.no.platform.update=true -Djdk.attach.allowAttachSelf=true -Didea.plugins.path=C:\\Users\\lex\\AppData\\Local\\JetBrains\\Toolbox\\apps\\IDEA-U\\ch-0\\202.6397.94.plugins -Djb.vmOptionsFile=C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94.vmoptions -Djava.library.path=C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin;C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin\server -Didea.jre.check=true -Dide.native.launcher=true -Didea.vendor.name=JetBrains -Didea.paths.selector=IntelliJIdea2020.2 -XX:ErrorFile=C:\Users\lex\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\lex\java_error_in_idea.hprof 
    2020-09-17 11:09:41,581 [     22]   INFO -        #com.intellij.idea.Main - library path: C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin;C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin\server 
    2020-09-17 11:09:41,581 [     22]   INFO -        #com.intellij.idea.Main - boot library path: C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\bin 
    2020-09-17 11:09:41,583 [     24]   INFO -        #com.intellij.idea.Main - locale=en_AU JNU=Cp1252 file.encoding=Cp1252
      idea.config.path=C:\Users\lex\AppData\Roaming\JetBrains\IntelliJIdea2020.2
      idea.system.path=C:\Users\lex\AppData\Local\JetBrains\IntelliJIdea2020.2
      idea.plugins.path=C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94.plugins
      idea.log.path=C:\Users\lex\AppData\Local\JetBrains\IntelliJIdea2020.2\log 
    2020-09-17 11:09:41,711 [    152]   INFO -        #com.intellij.idea.Main - JNA library (64-bit) loaded in 128 ms 
    2020-09-17 11:09:41,723 [    164]   INFO - penapi.util.io.win32.IdeaWin32 - Native filesystem for Windows is operational 
    2020-09-17 11:09:42,621 [   1062]   INFO - ntellij.idea.ApplicationLoader - CPU cores: 16; ForkJoinPool.commonPool: java.util.concurrent.ForkJoinPool@5bdaf64b[Running, parallelism = 15, size = 0, active = 0, running = 0, steals = 0, tasks = 0, submissions = 0]; factory: com.intellij.concurrency.IdeaForkJoinWorkerThreadFactory@73a552ef 
    2020-09-17 11:09:42,634 [   1075]   WARN - llij.ide.plugins.PluginManager - Problems found loading plugins:
      The Spring Messaging (id=com.intellij.spring.messaging, path=~\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\plugins\SpringMessaging) plugin Non-optional dependency plugin com.intellij.spring is disabled 
    2020-09-17 11:09:42,672 [   1113]   INFO - llij.ide.plugins.PluginManager - Loaded bundled plugins: IDEA CORE (202.6397.94), com.intellij.platform.images (202.6397.94), JetBrains maven model api classes (202.6397.94), JetBrains Repository Search (202.6397.94), HTML Tools (202.6397.94), Refactor-X (202.6397.94), XPathView + XSLT (202.6397.94), XSLT Debugger (202.6397.94), IDE Settings Sync (202.6397.94), Configuration Script (202.6397.94), Copyright (202.6397.94), CSS (202.6397.94), Less (202.6397.94), Sass (202.6397.94), Gradle (202.6397.94), Java (202.6397.94), JUnit (202.6397.94), Dependency Structure Matrix (202.6397.94), Java IDE Customization (202.6397.94), Java Bytecode Decompiler (202.6397.94), Recommenders for Java and Python (202.6397.94), Windows 10 Light Theme (202.6397.94), Properties (202.6397.94), Ant (202.6397.94), UML (202.6397.94), Guice (202.6397.94), Java Internationalization (202.6397.94), UI Designer (202.6397.94), Resource Bundle Editor (202.6397.94), Machine Learning Code Completion (202.6397.94), Task Management (202.6397.94), Time Tracking (202.6397.94), FTP/SFTP Connectivity (ex. Remote Hosts Access) (202.6397.94), Webp Support (202.6397.94), EditorConfig (202.6397.94), Terminal (202.6397.94), Git (202.6397.94), ChangeReminder (202.6397.94), Next File Prediction (202.6397.94), GitHub (202.6397.94), Performance Testing (202.6397.94), SSH Remote Run (202.6397.94), WSL Support Framework (202.6397.94), Shell Script (202.6397.94), TextMate Bundles (202.6397.94), YAML (202.6397.94), Microservices Application Configuration (202.6397.94), Settings Repository (202.6397.94), IntelliLang (202.6397.94), TestNG (202.6397.94), Code Coverage for Java (202.6397.94), Groovy (202.6397.94), Maven (202.6397.94), Gradle-Java (202.6397.94), Plugin DevKit (202.6397.94), Gradle Extension (202.6397.94), Frameworks Starters (202.6397.94), Gradle-Maven (202.6397.94), Reactive Streams (Reactor, RxJava) (202.6397.94), JavaFX (202.6397.94), Markdown (202.6397.94), Grazie (202.6397.94), JavaScript and TypeScript (202.6397.94), JavaScript Intention Power Pack (202.6397.94), TSLint (202.6397.94), Database Tools and SQL (202.6397.94), Java SQL Libraries (202.6397.94), Persistence Frameworks (202.6397.94), Java EE Platform (202.6397.94), JavaScript Debugger (202.6397.94), Node.js (202.6397.94), Spy-js (202.6397.94), Java EE: Persistence (JPA) (202.6397.94), Java EE: Enterprise Java Beans (EJB) (202.6397.94), Java EE: Bean Validation (202.6397.94), Java EE: Contexts and Dependency Injection (CDI) (202.6397.94), Helidon (202.6397.94), Java EE: Batch Applications (202.6397.94), Java EE: Application Servers Integration (202.6397.94), GlassFish (202.6397.94), Java EE: Web/Servlets (202.6397.94), Java Server Pages (JSP) (202.6397.94), Java EE: Server Faces (JSF) (202.6397.94), Application Servers View (202.6397.94), Java EE: Message Service (JMS) (202.6397.94), Java EE: WebSockets (202.6397.94), Java EE: Web Services (JAX-WS) (202.6397.94), Maven Extension (202.6397.94), HTTP Client (202.6397.94), Java EE: RESTful Web Services (JAX-RS) (202.6397.94), Quarkus (202.6397.94), Micronaut (202.6397.94), Java HTTP Clients (202.6397.94), OpenAPI Specifications (202.6397.94) 
    2020-09-17 11:09:42,672 [   1113]   INFO - llij.ide.plugins.PluginManager - Loaded custom plugins: JWT (JSON Web Token) Analyzer (0.11), ASM Bytecode Outline 2017 (0.3.5.2017.12.16), String Manipulation (8.4.191.000.0), Illuminated Cloud 2 (2.1.3.9), Kotlin (1.4.0-release-IJ2020.2-1), Ktor (1.4.0), Rainbow Brackets (6.10) 
    2020-09-17 11:09:42,891 [   1332]   INFO - m.intellij.util.io.StorageLock - lower=100; upper=500; buffer=10; max=3967 
    2020-09-17 11:09:42,900 [   1341]   INFO - tellij.util.io.FileChannelUtil - un-interruptible FileChannel-s will be used for indexes 
    2020-09-17 11:09:42,919 [   1360]   INFO - til.net.ssl.CertificateManager - Default SSL context initialized 
    2020-09-17 11:09:42,962 [   1403]   INFO - cation.options.RegistryManager - Registry values changed by user: BSP.experimental.feature.enabled = false, BSP.system.in.process = true, SBT.system.in.process = true, documentation.show.toolbar = true, java.completion.argument.hints.internal = false 
    2020-09-17 11:09:42,979 [   1420]   INFO - rains.ide.BuiltInServerManager - built-in server started, port 63342 
    2020-09-17 11:09:42,984 [   1425]   INFO - lij.diagnostic.DebugLogManager - Set DEBUG for the following categories: com.illuminatedcloud.intellij.builder.ForceComMetadataApiDeployer, com.illuminatedcloud.intellij.builder.ForceComSfdxDeployer, com.illuminatedcloud.intellij.builder.ForceComToolingApiDeployer, com.illuminatedcloud.intellij.builder.ForceComSfdxDeployer 
    2020-09-17 11:09:42,984 [   1425]   INFO - lij.diagnostic.DebugLogManager - Set TRACE for the following categories: com.illuminatedcloud.intellij.builder.ForceComSfdxMetadataDeployer, com.illuminatedcloud.util.CommandLineUtil, com.illuminatedcloud.intellij.sfdx.SfdxUtil, com.illuminatedcloud.intellij.builder.ForceComSfdxRetriever 
    2020-09-17 11:09:42,995 [   1436]   INFO - com.intellij.ide.ui.UISettings - Loaded: fontSize=13, fontScale=1.0; restored: fontSize=13, fontScale=1.0 
    2020-09-17 11:09:43,042 [   1483]   INFO - com.intellij.ide.ui.UISettings - Loaded: fontSize=14, fontScale=1.0; restored: fontSize=14, fontScale=1.0 
    2020-09-17 11:09:43,042 [   1483]   INFO - com.intellij.ide.ui.UISettings - Loaded: fontSize=14, fontScale=1.0; restored: fontSize=14, fontScale=1.0 
    2020-09-17 11:09:43,042 [   1483]   INFO - com.intellij.ide.ui.UISettings - Loaded: fontSize=12, fontScale=1.0; restored: fontSize=12, fontScale=1.0 
    2020-09-17 11:09:43,158 [   1599]   INFO - cloudConfig.CloudConfigManager - === Start: JBA_NOT_CONNECTED (2ms) === 
    2020-09-17 11:09:43,158 [   1599]   INFO - cloudConfig.CloudConfigManager - === Start.updateInitStatus === 
    2020-09-17 11:09:43,161 [   1602]   INFO - gs.impl.UpdateCheckerComponent - channel: release 
    2020-09-17 11:09:43,169 [   1610]   INFO - cloudConfig.CloudConfigManager - === calculateInitStatus === 
    2020-09-17 11:09:43,244 [   1685]   INFO - BridgeProjectLifecycleListener - Using legacy project model to open project 
    2020-09-17 11:09:43,303 [   1744]   INFO - pl.local.NativeFileWatcherImpl - Starting file watcher: C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\bin\fsnotifier64.exe 
    2020-09-17 11:09:43,318 [   1759]   INFO - pl.local.NativeFileWatcherImpl - Native file watcher is operational. 
    2020-09-17 11:09:43,612 [   2053]   INFO - rojectCodeStyleSettingsManager - Initialized from default code style settings. 
    2020-09-17 11:09:43,625 [   2066]   INFO - eStyle.CustomCodeStyleSettings - Loaded com.illuminatedcloud.intellij.formatter.ApexCodeStyleSettings 
    2020-09-17 11:09:43,626 [   2067]   INFO - eStyle.CustomCodeStyleSettings - Loaded org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings 
    2020-09-17 11:09:43,627 [   2068]   INFO - eStyle.CustomCodeStyleSettings - Loaded org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings 
    2020-09-17 11:09:43,628 [   2069]   INFO - eStyle.CustomCodeStyleSettings - Loaded com.intellij.psi.codeStyle.JavaCodeStyleSettings 
    2020-09-17 11:09:43,630 [   2071]   INFO - eStyle.CommonCodeStyleSettings - Loaded Apex common code style settings 
    2020-09-17 11:09:43,630 [   2071]   INFO - eStyle.CommonCodeStyleSettings - Loaded HTML common code style settings 
    2020-09-17 11:09:43,630 [   2071]   INFO - eStyle.CommonCodeStyleSettings - Loaded Java common code style settings 
    2020-09-17 11:09:43,630 [   2071]   INFO - eStyle.CommonCodeStyleSettings - Loaded XML common code style settings 
    2020-09-17 11:09:44,145 [   2586]   INFO - leBasedIndexDataInitialization - Initialization done: 1223 
    2020-09-17 11:09:44,201 [   2642]   WARN - ij.coverage.ApexCoverageEngine - Code coverage report generation is unavailable because jetbrains.coverage.report.html.HTMLReportBuilder and/or freemarker.template.Configuration could not be found in the classpath. 
    2020-09-17 11:09:44,202 [   2643]   WARN - ij.coverage.ApexCoverageEngine - To resolve this issue add coverage-report.jar and freemarker.jar to the application or plugin classpath. 
    2020-09-17 11:09:44,208 [   2649]   INFO - ellij.license.LicenseValidator - Initializing Illuminated Cloud 2.1.3.9 (20200916214918). 
    2020-09-17 11:09:44,208 [   2649]   INFO - ellij.license.LicenseValidator - Validating certificate. 
    2020-09-17 11:09:44,209 [   2650]   INFO - ellij.license.LicenseValidator - Successfully validated certificate. 
    2020-09-17 11:09:44,209 [   2650]   INFO - llij.license.SignedJarVerifier - Verifying application contents. 
    2020-09-17 11:09:44,247 [   2688]   INFO - exImpl$StubIndexInitialization - Initialization done: 101 
    2020-09-17 11:09:44,490 [   2931]   INFO - llij.license.SignedJarVerifier - Successfully verified application contents. 
    2020-09-17 11:09:44,490 [   2931]   INFO - ellij.license.LicenseValidator - Initializing the licensing system. 
    2020-09-17 11:09:44,520 [   2961]   INFO - ellij.license.LicenseValidator - Validating libraries. 
    2020-09-17 11:09:44,548 [   2989]   INFO - ellij.license.LicenseValidator - Successfully validated libraries. 
    2020-09-17 11:09:44,578 [   3019]   INFO - .cloudConfig.CloudConfigClient - === Get cloud config URL: https://cloudconfig.jetbrains.com/cloudconfig/files === 
    2020-09-17 11:09:44,813 [   3254]   INFO - j.ide.script.IdeStartupScripts - 0 startup script(s) found 
    2020-09-17 11:09:45,789 [   4230]   INFO - cloudConfig.CloudConfigManager - === calculateInitStatus.value: JBA_NOT_CONNECTED === 
    2020-09-17 11:09:46,715 [   5156]   INFO - penapi.application.Experiments - Experimental features enabled for user: wsl.p9.support, wsl.p9.show.roots.in.file.chooser, inline.browse.button, linux.native.menu, recent.and.edited.files.together, show.create.new.element.in.popup, copy.reference.popup, new.large.text.file.viewer, property.value.inplace.editing, terminal.shell.command.handling 
    2020-09-17 11:09:46,825 [   5266]   INFO -              PerformancePlugin - Performance Plugin is in silent mode 
    2020-09-17 11:09:47,038 [   5479]   INFO - ge.ExternalProjectsDataStorage - Load external projects data in 6 millis (read time: 0) 
    2020-09-17 11:09:47,076 [   5517]   WARN - openapi.wm.impl.ToolWindowImpl - ToolWindow icons should be 13x13. Please fix ToolWindow (ID:  ASM) or icon jar:file:/C:/Users/lex/AppData/Local/JetBrains/Toolbox/apps/IDEA-U/ch-0/202.6397.94.plugins/ASM-BO/lib/ASM-BO.jar!/images/asm.gif 
    2020-09-17 11:09:47,078 [   5519]   INFO - .diagnostic.PerformanceWatcher - Pushing JS language level to 2 libraries  took 26ms; general responsiveness: ok; EDT responsiveness: ok 
    2020-09-17 11:09:47,110 [   5551]   WARN - openapi.wm.impl.ToolWindowImpl - ToolWindow icons should be 13x13. Please fix ToolWindow (ID:  Illuminated Cloud) or icon jar:file:/C:/Users/lex/AppData/Local/JetBrains/Toolbox/apps/IDEA-U/ch-0/202.6397.94.plugins/IlluminatedCloud2/lib/IlluminatedCloud.jar!/images/IlluminatedCloudLogo_16x16.png 
    2020-09-17 11:09:47,112 [   5553]   WARN - openapi.wm.impl.ToolWindowImpl - ToolWindow icons should be 13x13. Please fix ToolWindow (ID:  Anonymous Apex) or icon IconWrapperWithTooltip:jar:file:/C:/Users/lex/AppData/Local/JetBrains/Toolbox/apps/IDEA-U/ch-0/202.6397.94/lib/icons.jar!/debugger/console.svg 
    2020-09-17 11:09:47,113 [   5554]   WARN - openapi.wm.impl.ToolWindowImpl - ToolWindow icons should be 13x13. Please fix ToolWindow (ID:  SOQL Query) or icon IconWrapperWithTooltip:jar:file:/C:/Users/lex/AppData/Local/JetBrains/Toolbox/apps/IDEA-U/ch-0/202.6397.94/lib/icons.jar!/nodes/dataSchema.svg 
    2020-09-17 11:09:47,113 [   5554]   WARN - openapi.wm.impl.ToolWindowImpl - ToolWindow icons should be 13x13. Please fix ToolWindow (ID:  Log Analyzer) or icon IconWrapperWithTooltip:jar:file:/C:/Users/lex/AppData/Local/JetBrains/Toolbox/apps/IDEA-U/ch-0/202.6397.94/lib/icons.jar!/nodes/logFolder.svg 
    2020-09-17 11:09:47,123 [   5564]   INFO - cloudConfig.CloudConfigManager - === StatusBar.update another widget: null === 
    2020-09-17 11:09:47,123 [   5564]   INFO - cloudConfig.CloudConfigManager - === End.updateInitStatus === 
    2020-09-17 11:09:47,224 [   5665]   INFO - ProjectRootPostStartUpActivity - C:/Users/lex/git-trausteknik/LWCsuperBadge/.idea case-sensitivity: expected=false actual=false 
    2020-09-17 11:09:47,250 [   5691]   INFO - .diagnostic.PerformanceWatcher - Post-startup activities under progress took 372ms; general responsiveness: ok; EDT responsiveness: 1/1 sluggish 
    2020-09-17 11:09:47,338 [   5779]   INFO - cloudConfig.CloudConfigManager - === StatusBar.start create === 
    2020-09-17 11:09:47,366 [   5807]   INFO - CompilerWorkspaceConfiguration - Available processors: 16 
    2020-09-17 11:09:47,510 [   5951]   INFO - tor.impl.FileEditorManagerImpl - Project opening took 4286 ms 
    2020-09-17 11:09:47,518 [   5959]   INFO - llij.database.util.SqlDialects - SQL dialects initialized in 0 ms 
    2020-09-17 11:09:47,533 [   5974]   INFO - .diagnostic.PerformanceWatcher - Pushing properties took 39ms; general responsiveness: ok; EDT responsiveness: ok 
    2020-09-17 11:09:47,878 [   6319]   WARN - com.intellij.util.xmlb.Binding - no accessors for org.jetbrains.kotlin.idea.highlighter.KotlinDefaultHighlightingSettingsProvider 
    2020-09-17 11:09:48,754 [   7195]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update canceled 
    2020-09-17 11:09:48,757 [   7198]   INFO - pl.ProjectRootManagerComponent - project roots have changed (trace_hash = 1982087417) 
    java.lang.Throwable
        at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.synchronizeRoots(ProjectRootManagerComponent.java:306)
        at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.fireRootsChangedEvent(ProjectRootManagerComponent.java:210)
        at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.fireRootsChanged(ProjectRootManagerImpl.java:428)
        at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.access$200(ProjectRootManagerImpl.java:37)
        at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.rootsChanged(ProjectRootManagerImpl.java:96)
        at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.makeRootsChange(ProjectRootManagerImpl.java:371)
        at org.jetbrains.kotlin.idea.core.script.ucache.ScriptClassRootsUpdater$notifyRootsChanged$doNotifyRootsChanged$1$1.invoke(ScriptClassRootsUpdater.kt:231)
        at org.jetbrains.kotlin.idea.core.script.ucache.ScriptClassRootsUpdater$notifyRootsChanged$doNotifyRootsChanged$1$1.invoke(ScriptClassRootsUpdater.kt:50)
        at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt$sam$com_intellij_openapi_util_Computable$0.compute(ApplicationUtils.kt)
        at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$16(ApplicationImpl.java:989)
        at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:968)
        at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:989)
        at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.runWriteAction(ApplicationUtils.kt:30)
        at org.jetbrains.kotlin.idea.core.script.ucache.ScriptClassRootsUpdater$notifyRootsChanged$doNotifyRootsChanged$1.run(ScriptClassRootsUpdater.kt:226)
        at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201)
        at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
        at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLaterOnWriteThread$11(ApplicationImpl.java:791)
        at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
        at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:132)
        at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
        at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:188)
        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:967)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839)
        at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:450)
        at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
        at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:449)
        at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:497)
        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)
    2020-09-17 11:09:48,769 [   7210]   INFO - .diagnostic.PerformanceWatcher - Pushing properties took 3ms; general responsiveness: ok; EDT responsiveness: ok 
    2020-09-17 11:09:48,951 [   7392]   INFO - .diagnostic.PerformanceWatcher - Pushing JS language level to 2 libraries  took 0ms; general responsiveness: ok; EDT responsiveness: ok 
    2020-09-17 11:09:52,334 [  10775]   INFO - gnostic.WindowsDefenderChecker - Windows Defender status: not used 
    2020-09-17 11:12:17,377 [ 155818]   WARN - ConfigurableExtensionPointUtil - ignore deprecated groupId: language for id: preferences.language.Kotlin.scripting 
    2020-09-17 11:12:17,487 [ 155928]   INFO - eStyle.CustomCodeStyleSettings - Loaded com.intellij.psi.formatter.xml.XmlCodeStyleSettings 
    2020-09-17 11:12:17,501 [ 155942]   INFO - eStyle.CommonCodeStyleSettings - Loaded Java common code style settings 
    2020-09-17 11:12:17,509 [ 155950]   INFO - eStyle.CustomCodeStyleSettings - Loaded com.intellij.psi.formatter.xml.XmlCodeStyleSettings 
    2020-09-17 11:12:17,509 [ 155950]   INFO - eStyle.CommonCodeStyleSettings - Loaded Java common code style settings 
    2020-09-17 11:12:17,514 [ 155955]   INFO - eStyle.CommonCodeStyleSettings - Loaded Java common code style settings 
    2020-09-17 11:12:38,812 [ 177253]   INFO - lij.ide.plugins.DynamicPlugins - Plugin org.jetbrains.kotlin is not unload-safe because of unresolved extension org.jetbrains.kotlin.defaultErrorMessages 
    2020-09-17 11:12:38,824 [ 177265]   WARN - tions.ex.ConfigurableCardPanel - auto-dispose 'Plugins' id=preferences.pluginManager 
    2020-09-17 11:12:40,863 [ 179304]   INFO - mponents.impl.stores.StoreUtil - saveProjectsAndApp took 1745 ms 
    2020-09-17 11:12:41,032 [ 179473]   INFO - .diagnostic.PerformanceWatcher - Indexable file iteration took 172263ms; general responsiveness: ok; EDT responsiveness: ok 
    2020-09-17 11:12:41,034 [ 179475]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update started: 86528 files to index 
    2020-09-17 11:12:41,037 [ 179478]   INFO - indexing.UnindexedFilesUpdater - Using 4 threads for indexing 
    2020-09-17 11:12:41,038 [ 179479]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update canceled 
    2020-09-17 11:12:41,071 [ 179512]   INFO - pl.local.NativeFileWatcherImpl - Watcher terminated with exit code 0 
    2020-09-17 11:12:41,072 [ 179513]   INFO - .impl.FileTypeDetectionService - 0 auto-detected files. Detection took 0 ms 
    2020-09-17 11:12:41,073 [ 179514]   INFO - org.jetbrains.io.BuiltInServer - web server stopped 
    2020-09-17 11:12:41,085 [ 179526]   INFO - il.indexing.FileBasedIndexImpl - START INDEX SHUTDOWN 
    2020-09-17 11:12:41,108 [ 179549]   INFO - tellij.psi.stubs.StubIndexImpl - StubIndexExtension-s were unloaded 
    2020-09-17 11:12:41,138 [ 179579]   INFO - il.indexing.FileBasedIndexImpl - END INDEX SHUTDOWN 
    2020-09-17 11:12:41,138 [ 179579]   INFO - newvfs.persistent.PersistentFS - VFS dispose started 
    2020-09-17 11:12:41,158 [ 179599]   INFO - newvfs.persistent.PersistentFS - VFS dispose completed 
    2020-09-17 11:12:41,159 [ 179600]   INFO - stubs.SerializationManagerImpl - Start shutting down C:\Users\lex\AppData\Local\JetBrains\IntelliJIdea2020.2\index\rep.names 
    2020-09-17 11:12:41,159 [ 179600]   INFO - stubs.SerializationManagerImpl - Finished shutting down C:\Users\lex\AppData\Local\JetBrains\IntelliJIdea2020.2\index\rep.names 
    2020-09-17 11:12:41,163 [ 179604]   INFO -   #com.intellij.util.Restarter - run restarter: [C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\bin\restarter.exe, 20084, 1, C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\bin\idea64.exe] 
    2020-09-17 11:12:41,671 [ 180112]   INFO -        #com.intellij.idea.Main - ------------------------------------------------------ IDE SHUTDOWN ------------------------------------------------------ 
    

  22. Xander Victory reporter

    LWC HTML performance does appear to be drastically improved though (will continue my work and update if that changes)

  23. Scott Wells repo owner

    That's really strange about the Kotlin plugin. I'll investigate a bit. I'm glad to hear that initial results around LWC performance seem promising, though. Let me know how it goes.

  24. Scott Wells repo owner

    I have not. I have Kotlin enabled in my primary test/debug IDE instance and have not seen that issue. Are you able to reproduce it consistently? In other words, does it happen if you re-enable the Kotlin plugin?

  25. Xander Victory reporter

    Yep, every time I open an SFDX project with the Kotlin plugin enabled, indexing never seems to complete

    2020-09-19 20:36:01,567 [      0]   INFO -        #com.intellij.idea.Main - ------------------------------------------------------ IDE STARTED ------------------------------------------------------ 
    2020-09-19 20:36:01,588 [     21]   INFO -        #com.intellij.idea.Main - IDE: IntelliJ IDEA (build #IU-202.6397.94, 27 Jul 2020 18:40) 
    2020-09-19 20:36:01,589 [     22]   INFO -        #com.intellij.idea.Main - OS: Windows 10 (10.0, amd64) 
    2020-09-19 20:36:01,589 [     22]   INFO -        #com.intellij.idea.Main - JRE: 11.0.7+10-b944.20 (JetBrains s.r.o.) 
    2020-09-19 20:36:01,589 [     22]   INFO -        #com.intellij.idea.Main - JVM: 11.0.7+10-b944.20 (OpenJDK 64-Bit Server VM) 
    2020-09-19 20:36:01,589 [     22]   INFO -        #com.intellij.idea.Main - JVM Args: exit -Xms128m -Xmx4096m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true -Dide.no.platform.update=true -Djdk.attach.allowAttachSelf=true -Didea.plugins.path=C:\\Users\\lex\\AppData\\Local\\JetBrains\\Toolbox\\apps\\IDEA-U\\ch-0\\202.6397.94.plugins -Djb.vmOptionsFile=C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94.vmoptions -Djava.library.path=C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin;C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin\server -Didea.jre.check=true -Dide.native.launcher=true -Didea.vendor.name=JetBrains -Didea.paths.selector=IntelliJIdea2020.2 -XX:ErrorFile=C:\Users\lex\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\lex\java_error_in_idea.hprof 
    2020-09-19 20:36:01,590 [     23]   INFO -        #com.intellij.idea.Main - library path: C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin;C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\\bin\server 
    2020-09-19 20:36:01,590 [     23]   INFO -        #com.intellij.idea.Main - boot library path: C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94\jbr\bin 
    2020-09-19 20:36:01,591 [     24]   INFO -        #com.intellij.idea.Main - locale=en_AU JNU=Cp1252 file.encoding=Cp1252
      idea.config.path=C:\Users\lex\AppData\Roaming\JetBrains\IntelliJIdea2020.2
      idea.system.path=C:\Users\lex\AppData\Local\JetBrains\IntelliJIdea2020.2
      idea.plugins.path=C:\Users\lex\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\202.6397.94.plugins
      idea.log.path=C:\Users\lex\AppData\Local\JetBrains\IntelliJIdea2020.2\log 
    2020-09-19 20:36:01,718 [    151]   INFO -        #com.intellij.idea.Main - JNA library (64-bit) loaded in 126 ms 
    2020-09-19 20:36:01,731 [    164]   INFO - penapi.util.io.win32.IdeaWin32 - Native filesystem for Windows is operational 
    2020-09-19 20:36:02,628 [   1061]   INFO - ntellij.idea.ApplicationLoader - CPU cores: 16; ForkJoinPool.commonPool: java.util.concurrent.ForkJoinPool@4c071f03[Running, parallelism = 15, size = 0, active = 0, running = 0, steals = 0, tasks = 0, submissions = 0]; factory: com.intellij.concurrency.IdeaForkJoinWorkerThreadFactory@10a77e82 
    2020-09-19 20:36:02,673 [   1106]   INFO - llij.ide.plugins.PluginManager - Loaded bundled plugins: IDEA CORE (202.6397.94), com.intellij.platform.images (202.6397.94), JetBrains maven model api classes (202.6397.94), JetBrains Repository Search (202.6397.94), HTML Tools (202.6397.94), Refactor-X (202.6397.94), XPathView + XSLT (202.6397.94), XSLT Debugger (202.6397.94), IDE Settings Sync (202.6397.94), Configuration Script (202.6397.94), Copyright (202.6397.94), CSS (202.6397.94), Less (202.6397.94), Sass (202.6397.94), Gradle (202.6397.94), Java (202.6397.94), JUnit (202.6397.94), Dependency Structure Matrix (202.6397.94), Java IDE Customization (202.6397.94), Java Bytecode Decompiler (202.6397.94), Recommenders for Java and Python (202.6397.94), Windows 10 Light Theme (202.6397.94), Properties (202.6397.94), Ant (202.6397.94), UML (202.6397.94), Guice (202.6397.94), Java Internationalization (202.6397.94), UI Designer (202.6397.94), Resource Bundle Editor (202.6397.94), Machine Learning Code Completion (202.6397.94), Task Management (202.6397.94), Time Tracking (202.6397.94), FTP/SFTP Connectivity (ex. Remote Hosts Access) (202.6397.94), Webp Support (202.6397.94), EditorConfig (202.6397.94), Terminal (202.6397.94), Git (202.6397.94), ChangeReminder (202.6397.94), Next File Prediction (202.6397.94), GitHub (202.6397.94), Performance Testing (202.6397.94), SSH Remote Run (202.6397.94), WSL Support Framework (202.6397.94), Shell Script (202.6397.94), TextMate Bundles (202.6397.94), YAML (202.6397.94), Microservices Application Configuration (202.6397.94), Settings Repository (202.6397.94), IntelliLang (202.6397.94), TestNG (202.6397.94), Code Coverage for Java (202.6397.94), Groovy (202.6397.94), Maven (202.6397.94), Gradle-Java (202.6397.94), Plugin DevKit (202.6397.94), Gradle Extension (202.6397.94), Frameworks Starters (202.6397.94), Gradle-Maven (202.6397.94), Reactive Streams (Reactor, RxJava) (202.6397.94), JavaFX (202.6397.94), Markdown (202.6397.94), Grazie (202.6397.94), JavaScript and TypeScript (202.6397.94), JavaScript Intention Power Pack (202.6397.94), TSLint (202.6397.94), Database Tools and SQL (202.6397.94), Java SQL Libraries (202.6397.94), Persistence Frameworks (202.6397.94), Java EE Platform (202.6397.94), JavaScript Debugger (202.6397.94), Node.js (202.6397.94), Spy-js (202.6397.94), Java EE: Persistence (JPA) (202.6397.94), Java EE: Enterprise Java Beans (EJB) (202.6397.94), Java EE: Bean Validation (202.6397.94), Java EE: Contexts and Dependency Injection (CDI) (202.6397.94), Helidon (202.6397.94), Java EE: Batch Applications (202.6397.94), Java EE: Application Servers Integration (202.6397.94), GlassFish (202.6397.94), Java EE: Web/Servlets (202.6397.94), Java Server Pages (JSP) (202.6397.94), Java EE: Server Faces (JSF) (202.6397.94), Application Servers View (202.6397.94), Java EE: Message Service (JMS) (202.6397.94), Java EE: WebSockets (202.6397.94), Java EE: Web Services (JAX-WS) (202.6397.94), Maven Extension (202.6397.94), HTTP Client (202.6397.94), Java EE: RESTful Web Services (JAX-RS) (202.6397.94), Quarkus (202.6397.94), Micronaut (202.6397.94), Java HTTP Clients (202.6397.94), OpenAPI Specifications (202.6397.94) 
    2020-09-19 20:36:02,673 [   1106]   INFO - llij.ide.plugins.PluginManager - Loaded custom plugins: JWT (JSON Web Token) Analyzer (0.11), ASM Bytecode Outline 2017 (0.3.5.2017.12.16), String Manipulation (8.4.191.000.0), Illuminated Cloud 2 (2.1.4.0), Kotlin (1.4.10-release-IJ2020.2-1), Rainbow Brackets (6.11) 
    

  26. Scott Wells repo owner

    Thanks, Xander. So here's what I'm seeing:

    Issue_1693.png

    I'm unable to see the invocation counts, but my guess is that they're going to be exorbitantly high for SfdxUtil.getConfigFiles and therefore File.lastModified.

    What doesn't make sense at all is why the presence or absence of the Kotlin plugin would come into play here. The only thing that would make sense is that the Kotlin SDK files are being passed to CaseSensitiveFilenameIndex for processing and either there are many of them, or getting last modified information for those files is more expensive. If that's the case, though, why don't I see this since I have that plugin installed and enabled?

    Anyway, I modified the hotspot method a bit so that the most expensive part (according to that profiling snapshot) doesn't get invoked until we do a VERY lightweight first-pass analysis on the file. I've attached a build with that change here. Can you see if it addresses the issue?

  27. Xander Victory reporter

    That certainly speeds things up to a normal indexing speed. There’s still the notice that source roots have changed in the log, but as you say, no idea why that happens.

    The only Kotlin files visible to this project would be kts (kotlin scripting) files in scratches / IDE consoles

  28. Scott Wells repo owner

    Okay, good. I'll include that in the next build, so for now just sit tight on the one that was attached. I see the "source root have changed" message as well. It happens when IC sets the OST as the SDK (which it's doing in one case when it doesn't necessarily need to do so). I believe they added that log message recently or promoted the logging level to something more visible. It's just informational, though, even if it's logged with a stack trace. I'll report it to JetBrains and ask them to quiet it down, but I'll also see if I can eliminate any extraneous updates to the SDK.

    Thanks for helping to confirm and for providing all the diagnostic data along the way!

  29. Xander Victory reporter

    Running with a sampler (with the plugin repo version) that tracks hits shows your assumption is quite likely, the count keeps climbing!

    Thanks for sticking with it and poking at a solution

  30. Scott Wells repo owner

    I'd actually be very curious to know what those files are given that it only happens when the Kotlin plugin is enabled. Obviously this is addressed now--or at least will be in the next official build--but if you share that same curiosity I can provide a build with some logging in that area that will list the files it's being asked to index. Again, just for curiosity's sake. I'm also totally fine staying where we are right now.

  31. Xander Victory reporter

    Sure, I can run a special build, might help us work out what kind of weird edge case I’m running into 😂

  32. Scott Wells repo owner

    Okay, add the following to Help>Diagnostic Tools>Debug Log Settings and then install this latest build:

    #com.illuminatedcloud.intellij.index.CaseInsensitiveFilenameIndex
    

    This is likely going to result in significant additional logging, so once indexing completes gather up all of the logs (they'll almost certainly roll over), send them to me for review, and remove the entry above so that your logs go back to a reasonable state.

  33. Xander Victory reporter

    ok, that is SUPER weird, it's indexing a plugin SDK which I attached a source zip to (the SDK itself no longer exists, points to a dead home path)

    Perhaps some scratch files got assigned to it, or it's getting set as default before the IC2 one?

  34. Xander Victory reporter

    Setting a default/project JDK there makes it index that JDK plus all the current running IDE & Plugin jars.

    Have you ever used IDE scripting console? Tools → IDE Scripting Console → select a language.

    One used to be SOL with regards to autocomplete, but it seems to have changed in the last year or so (not that I’ve really used it in that time)

  35. Scott Wells repo owner

    Not sure what to say about the plugin SDK sources. I'd have to see the .iml file to see how the dependencies are set up. Perhaps it still has the sources configured as a module dependency?

    That makes me feel better in terms of overall exposure of this issue, though. Doesn't sound like most users would ever have seen this particular issue, and of course later this week I'll release a fix for it anyway. It also helps explain why I haven't seen it even with the Kotlin plugin enabled. Evidently one of your projects has some weird, stale dependencies that are still being processed. I'll be curious to hear what you find examining the module config file.

    No, I've not played with the IDE scripting console.

  36. Scott Wells repo owner

    Hmmmm...yeah, that's super strange if it's sending in plugin SDK sources for indexing. I assume those sources are located in a completely separate filesystem location from the project, no? If so, we might want to bring this to JetBrains' attention. I know there's one other issue they're addressing right now where when you have multiple projects open and one starts updating files, the other projects start indexing (and restart indexing, and restart indexing, etc.) as those file events happen even though they're not under any of their configured source roots. Could be related...

  37. Xander Victory reporter

    Yep, that’s a valid summary - they’re stored in the appdata/roaming/<ide> folder (though they do show up in the file tree, under Scratches and Consoles), and shouldn’t really be part of the ‘project’

  38. Scott Wells repo owner

    FYI, 2.1.4.1 includes the most recent optimization for the case-insensitive filename index.

  39. Log in to comment