odoo-ide/pycharm-odoo

com.intellij.openapi.project.IndexNotReadyException

Closed this issue · 5 comments

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)


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 ?

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

@jerzyk ,

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

Hi @jerzyk ,

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

on a first look it is working, thanks!