odoo-ide / pycharm-odoo

PyCharm plugin for Odoo
https://plugins.jetbrains.com/plugin/13499-odoo
Other
41 stars 5 forks source link

com.intellij.openapi.project.IndexNotReadyException #445

Closed jerzyk closed 3 months ago

jerzyk commented 6 months ago

mostly when opening project that is doing reindexing:

com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
    at com.intellij.openapi.project.IndexNotReadyException.create(IndexNotReadyException.java:67)
    at com.intellij.util.indexing.FileBasedIndexImpl.handleDumbMode(FileBasedIndexImpl.java:821)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:769)
    at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:303)
    at com.intellij.util.indexing.FileBasedIndexEx.getContainingFilesIterator(FileBasedIndexEx.java:251)
    at com.intellij.util.indexing.FileBasedIndexEx.getContainingFiles(FileBasedIndexEx.java:227)
    at com.intellij.util.indexing.FileBasedIndexImpl.getContainingFiles(FileBasedIndexImpl.java:1073)
    at dev.ngocta.pycharm.odoo.module.OdooModuleIndex.getModuleByName(OdooModuleIndex.java:57)
    at dev.ngocta.pycharm.odoo.module.OdooModuleIndex.getModuleByName(OdooModuleIndex.java:70)
    at dev.ngocta.pycharm.odoo.module.OdooModule.lambda$getDepends$0(OdooModule.java:73)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:366)
    at dev.ngocta.pycharm.odoo.OdooUtils.getCachedValue(OdooUtils.java:339)
    at dev.ngocta.pycharm.odoo.module.OdooModule.getDepends(OdooModule.java:62)
    at dev.ngocta.pycharm.odoo.module.OdooModule.lambda$getModuleWithRecursiveDepends$2(OdooModule.java:101)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:366)
    at dev.ngocta.pycharm.odoo.OdooUtils.getCachedValue(OdooUtils.java:339)
    at dev.ngocta.pycharm.odoo.module.OdooModule.getModuleWithRecursiveDepends(OdooModule.java:90)
    at dev.ngocta.pycharm.odoo.module.OdooModule.lambda$getModuleScope$7(OdooModule.java:227)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:366)
    at dev.ngocta.pycharm.odoo.module.OdooModule.getModuleScope(OdooModule.java:223)
    at dev.ngocta.pycharm.odoo.module.OdooModule.getModuleWithDependenciesScope(OdooModule.java:202)
    at dev.ngocta.pycharm.odoo.module.OdooModuleUtils.getModuleWithDependenciesOrFallbackScope(OdooModuleUtils.java:282)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeIndex.lambda$getModelLikeClassDefinitionsByName$2(OdooModelLikeIndex.java:175)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValueOnModule(OdooUtils.java:382)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeIndex.getModelLikeClassDefinitionsByName(OdooModelLikeIndex.java:174)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.getDefinitions(OdooModelLikeClass.java:71)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.lambda$getSuperClasses$1(OdooModelLikeClass.java:142)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValueOnModule(OdooUtils.java:382)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.getSuperClasses(OdooModelLikeClass.java:140)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.lambda$getAncestorClasses$0(OdooModelLikeClass.java:105)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValueOnModule(OdooUtils.java:382)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.getAncestorClasses(OdooModelLikeClass.java:102)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.getAncestorClasses(OdooModelLikeClass.java:92)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.lambda$getSuperMembers$9(OdooModelLikeClass.java:563)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:366)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClass.getSuperMembers(OdooModelLikeClass.java:561)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeSuperClassType.getMembers(OdooModelLikeSuperClassType.java:37)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClassType.resolveMemberElements(OdooModelLikeClassType.java:82)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClassType.resolveMember(OdooModelLikeClassType.java:75)
    at dev.ngocta.pycharm.odoo.model.common.OdooModelLikeClassType.resolveMember(OdooModelLikeClassType.java:61)
    at com.jetbrains.python.psi.impl.references.PyQualifiedReference.resolveInner(PyQualifiedReference.java:89)
    at dev.ngocta.pycharm.odoo.python.psi.OdooPyQualifiedReference.resolveInner(OdooPyQualifiedReference.java:93)
    at dev.ngocta.pycharm.odoo.python.psi.OdooPyQualifiedReference.lambda$multiResolve$0(OdooPyQualifiedReference.java:64)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at dev.ngocta.pycharm.odoo.python.psi.OdooPyQualifiedReference.lambda$multiResolve$1(OdooPyQualifiedReference.java:64)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:355)
    at dev.ngocta.pycharm.odoo.OdooUtils.getParameterizedCachedValue(OdooUtils.java:366)
    at dev.ngocta.pycharm.odoo.python.psi.OdooPyQualifiedReference.multiResolve(OdooPyQualifiedReference.java:58)
    at com.jetbrains.python.psi.PyUtil.multiResolveTopPriority(PyUtil.java:510)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.tryResolvingWithAliases(PyTypingTypeProvider.java:1764)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.tryResolving(PyTypingTypeProvider.java:1753)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.resolveToQualifiedNames(PyTypingTypeProvider.java:1850)
    at com.jetbrains.python.codeInsight.typing.PyTypedDictTypeProvider$Companion.isTypedDict(PyTypedDictTypeProvider.kt:48)
    at com.jetbrains.python.codeInsight.typing.PyTypedDictTypeProvider$Companion.getTypedDictTypeForCallee(PyTypedDictTypeProvider.kt:117)
    at com.jetbrains.python.codeInsight.typing.PyTypedDictTypeProvider$Companion.access$getTypedDictTypeForCallee(PyTypedDictTypeProvider.kt:39)
    at com.jetbrains.python.codeInsight.typing.PyTypedDictTypeProvider.getReferenceExpressionType(PyTypedDictTypeProvider.kt:28)
    at com.jetbrains.python.psi.impl.PyReferenceExpressionImpl.getTypeFromProviders(PyReferenceExpressionImpl.java:379)
    at com.jetbrains.python.psi.impl.PyReferenceExpressionImpl.getType(PyReferenceExpressionImpl.java:215)
    at dev.ngocta.pycharm.odoo.python.psi.OdooPyReferenceExpression.getType(OdooPyReferenceExpression.java:43)
    at com.jetbrains.python.psi.types.TypeEvalContext.lambda$getType$0(TypeEvalContext.java:181)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.jetbrains.python.psi.types.TypeEvalContext.getType(TypeEvalContext.java:170)
    at com.jetbrains.python.psi.impl.PyCallExpressionHelper.getExplicitResolveResults(PyCallExpressionHelper.java:220)
    at com.jetbrains.python.psi.impl.PyCallExpressionHelper.lambda$multiResolveCallee$1(PyCallExpressionHelper.java:192)
    at com.jetbrains.python.psi.PyUtil.getNullableParameterizedCachedValue(PyUtil.java:669)
    at com.jetbrains.python.psi.PyUtil.getParameterizedCachedValue(PyUtil.java:647)
    at com.jetbrains.python.psi.impl.PyCallExpressionHelper.multiResolveCallee(PyCallExpressionHelper.java:188)
    at com.jetbrains.python.psi.impl.PyCallExpressionHelper.getCallType(PyCallExpressionHelper.java:580)
    at com.jetbrains.python.psi.impl.PyCallExpressionImpl.getType(PyCallExpressionImpl.java:64)
    at dev.ngocta.pycharm.odoo.python.psi.OdooPyCallExpression.getType(OdooPyCallExpression.java:74)
    at com.jetbrains.python.psi.types.TypeEvalContext.lambda$getType$0(TypeEvalContext.java:181)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.jetbrains.python.psi.types.TypeEvalContext.getType(TypeEvalContext.java:170)
    at com.jetbrains.python.psi.impl.references.PyOperatorReference.resolveMember(PyOperatorReference.java:126)
    at com.jetbrains.python.psi.impl.references.PyOperatorReference.resolveLeftAndRightOperators(PyOperatorReference.java:104)
    at com.jetbrains.python.psi.impl.references.PyOperatorReference.resolveInner(PyOperatorReference.java:51)
    at com.jetbrains.python.psi.impl.references.PyReferenceImpl.multiResolveInner(PyReferenceImpl.java:107)
    at com.jetbrains.python.psi.impl.references.PyReferenceImpl$CachingResolver.resolve(PyReferenceImpl.java:775)
    at com.jetbrains.python.psi.impl.references.PyReferenceImpl$CachingResolver.resolve(PyReferenceImpl.java:770)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$1(ResolveCache.java:159)
    at com.intellij.openapi.util.Computable.get(Computable.java:16)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:234)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:212)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:158)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:145)
    at com.jetbrains.python.psi.impl.references.PyReferenceImpl.multiResolve(PyReferenceImpl.java:94)
    at com.jetbrains.python.psi.impl.PyCallExpressionHelper.multiResolveCallee(PyCallExpressionHelper.java:204)
    at com.jetbrains.python.psi.impl.PyCallExpressionHelper.getCallType(PyCallExpressionHelper.java:613)
    at com.jetbrains.python.psi.impl.PyBinaryExpressionImpl.getType(PyBinaryExpressionImpl.java:139)
    at com.jetbrains.python.psi.types.TypeEvalContext.lambda$getType$0(TypeEvalContext.java:181)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
    at com.jetbrains.python.psi.types.TypeEvalContext.getType(TypeEvalContext.java:170)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.getClassType(PyTypingTypeProvider.java:1050)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.getTypeForResolvedElement(PyTypingTypeProvider.java:906)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.getType(PyTypingTypeProvider.java:733)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.lambda$getType$18(PyTypingTypeProvider.java:725)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.staticWithCustomContext(PyTypingTypeProvider.java:2024)
    at com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider.getType(PyTypingTypeProvider.java:725)
    at com.jetbrains.python.validation.CompatibilityVisitor.checkBitwiseOrUnionSyntax(CompatibilityVisitor.java:863)
    at com.jetbrains.python.validation.CompatibilityVisitor.visitPyBinaryExpression(CompatibilityVisitor.java:210)
    at com.jetbrains.python.psi.impl.PyBinaryExpressionImpl.acceptPyVisitor(PyBinaryExpressionImpl.java:36)
    at com.jetbrains.python.psi.impl.PyBaseElementImpl.accept(PyBaseElementImpl.java:61)
    at com.jetbrains.python.validation.PyAnnotator.annotateElement(PyAnnotator.java:44)
    at com.jetbrains.python.validation.UnsupportedFeatures.annotateElement(UnsupportedFeatures.java:46)
    at com.jetbrains.python.validation.PyAnnotatingVisitor.runAnnotators(PyAnnotatingVisitor.java:61)
    at com.jetbrains.python.validation.PyAnnotatingVisitor.annotate(PyAnnotatingVisitor.java:54)
    at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:128)
    at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:106)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:361)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$7(GeneralHighlightingPass.java:300)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:321)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$8(GeneralHighlightingPass.java:324)
    at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:91)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:324)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:287)
    at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:234)
    at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:80)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:55)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$1(PassExecutorService.java:406)
    at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:76)
    at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:34)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:401)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:392)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:609)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
    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:200)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:184)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:365)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:187)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
trinhanhngoc commented 6 months ago

Hello @jerzyk ,

I am using PyCharm 2023.3.1 Pro, and I do not see such exceptions when opening projects. Have you tried manually invalidating caches ?

jerzyk commented 6 months ago

same version here,

to me it looks like a race condition when pycharm decides to update indexes - today I've go this exception on project where I've updated some modules (from cmd line) before opening project in pycharm

trinhanhngoc commented 6 months ago

@jerzyk ,

I just got the same error when opening my project :(. I will investigate this further.

trinhanhngoc commented 3 months ago

Hi @jerzyk ,

The new version 2024.2.2 has been released to address this issue.

jerzyk commented 3 months ago

on a first look it is working, thanks!