Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[python] Components of QualifiedName cannot contain dots inside them, but got: python3.11 - code intelligence stops working #6832

Open
jdn-kvantify opened this issue Oct 3, 2024 · 2 comments
Assignees
Labels
more-data-needed Awaiting response from issue author product: IntelliJ IntelliJ plugin type: bug

Comments

@jdn-kvantify
Copy link

jdn-kvantify commented Oct 3, 2024

Description of the bug:

When installing and enabling the plugin, navigation and inspection stops working (for python sources at least). The error:

java.lang.IllegalArgumentException: Components of QualifiedName cannot contain dots inside them, but got: python3.11
	at com.intellij.psi.util.QualifiedName.assertNoDots(QualifiedName.java:195)
	at com.intellij.psi.util.QualifiedName.fromComponents(QualifiedName.java:35)
	at com.google.idea.blaze.python.resolve.provider.AbstractPyImportResolverStrategy.assembleImportRoots(AbstractPyImportResolverStrategy.java:244)
	at com.google.idea.blaze.python.resolve.provider.AbstractPyImportResolverStrategy.buildSourcesIndex(AbstractPyImportResolverStrategy.java:127)
	at com.google.idea.blaze.base.sync.SyncCache.get(SyncCache.java:61)
	at com.google.idea.blaze.python.resolve.provider.AbstractPyImportResolverStrategy.getSourcesIndex(AbstractPyImportResolverStrategy.java:117)
	at com.google.idea.blaze.python.resolve.provider.AbstractPyImportResolverStrategy.resolveFromSyncData(AbstractPyImportResolverStrategy.java:79)
	at com.google.idea.blaze.python.resolve.PyDynamicImportResolverInitializer.lambda$registerImportResolvers$0(PyDynamicImportResolverInitializer.java:51)
	at com.jetbrains.python.psi.resolve.PyResolveImportUtil$foreignResults$1.invoke(PyResolveImportUtil.kt:205)
	at com.jetbrains.python.psi.resolve.PyResolveImportUtil$foreignResults$1.invoke(PyResolveImportUtil.kt:203)
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210)
	at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:170)
	at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194)
	at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:809)
	at com.jetbrains.python.psi.resolve.PyResolveImportUtil.foreignResults(PyResolveImportUtil.kt:209)
	at com.jetbrains.python.psi.resolve.PyResolveImportUtil.resolveQualifiedName(PyResolveImportUtil.kt:78)
	at com.jetbrains.python.psi.impl.PyBuiltinCache.getSkeletonFile(PyBuiltinCache.java:161)
	at com.jetbrains.python.psi.impl.PyBuiltinCache.getBuiltinsForSdk(PyBuiltinCache.java:140)
	at com.jetbrains.python.psi.resolve.PythonSdkPathCache.getBuiltins(PythonSdkPathCache.java:112)
	at com.jetbrains.python.psi.impl.PyBuiltinCache.getInstance(PyBuiltinCache.java:88)
	at com.jetbrains.python.psi.impl.PyBuiltinCache.isInBuiltins(PyBuiltinCache.java:402)
	at com.jetbrains.python.validation.PyBuiltinAnnotator.visitPyReferenceExpression(PyBuiltinAnnotator.java:39)
	at com.jetbrains.python.psi.impl.PyReferenceExpressionImpl.acceptPyVisitor(PyReferenceExpressionImpl.java:86)
	at com.jetbrains.python.psi.impl.PyBaseElementImpl.accept(PyBaseElementImpl.java:58)
	at com.jetbrains.python.validation.PyAnnotator.annotateElement(PyAnnotator.java:46)
	at com.jetbrains.python.validation.PyAnnotatorBase.runAnnotators(PyAnnotatorBase.java:23)
	at com.jetbrains.python.validation.PyAnnotatingVisitor.annotate(PyAnnotatingVisitor.java:52)
	at com.intellij.codeInsight.daemon.impl.AnnotationHolderImpl.runAnnotatorWithContext(AnnotationHolderImpl.java:216)
	at com.intellij.codeInsight.daemon.impl.AnnotatorRunner.lambda$runAnnotator$2(AnnotatorRunner.java:129)
	at com.intellij.codeInsight.daemon.impl.AnnotationSessionImpl.computeWithSession(AnnotationSessionImpl.java:87)
	at com.intellij.codeInsight.daemon.impl.AnnotatorRunner.runAnnotator(AnnotatorRunner.java:119)
	at com.intellij.codeInsight.daemon.impl.AnnotatorRunner.lambda$runAnnotatorsAsync$0(AnnotatorRunner.java:66)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:279)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:965)
	at com.intellij.codeInsight.daemon.impl.AnnotatorRunner.lambda$runAnnotatorsAsync$1(AnnotatorRunner.java:66)
	at com.intellij.concurrency.ApplierCompleter.processArrayItem(ApplierCompleter.java:116)
	at com.intellij.concurrency.ApplierCompleter.processArray(ApplierCompleter.java:196)
	at com.intellij.concurrency.ApplierCompleter.execAll(ApplierCompleter.java:166)
	at com.intellij.concurrency.ApplierCompleter.lambda$exec$0(ApplierCompleter.java:105)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:291)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:965)
	at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$2(ApplierCompleter.java:148)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
	at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:159)
	at com.intellij.concurrency.ApplierCompleter.lambda$wrapAndRun$1(ApplierCompleter.java:140)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.executeByImpatientReader(AnyThreadWriteThreadingSupport.kt:486)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:178)
	at com.intellij.concurrency.ApplierCompleter.wrapAndRun(ApplierCompleter.java:140)
	at com.intellij.concurrency.ApplierCompleter.exec(ApplierCompleter.java:108)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)```

### Which category does this issue belong to?

Intellij

### What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.


install plugin, go to some source and put the cursor on an element that you could navigate from with ctrl-b ((e.g. class name) and the error is reported by IDE and the navigation is not available

### Which Intellij IDE are you using? Please provide the specific version.


IntelliJ IDEA 2024.2.3 (Community Edition) Build #IC-242.23339.11, built on September 25, 2024 Runtime version: 21.0.4+13-b509.17 amd64 (JCEF 122.1.9) VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Toolkit: sun.awt.X11.XToolkit Linux 6.5.0-1025-oem GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation Memory: 8000M Cores: 16 Registry:   ide.experimental.ui=true   i18n.locale= Non-Bundled Plugins:   com.redhat.devtools.lsp4ij (0.6.0)   PythonCore (242.23339.11)   com.maaxgr.intellij.jsonviewer (1.0.19)   org.jetbrains.plugins.hocon (2024.2.0)   aws.toolkit.core (3.30-242)   com.google.idea.bazel.ijwb (2024.09.10.0.1-api-version-242)   aws.toolkit (3.30-242) Kotlin: 242.23339.11-IJ Current Desktop: ubuntu:GNOME

### What programming languages and tools are you using? Please provide specific versions.


python 

### What Bazel plugin version are you using?


2024.09.10.0.1-api-version-242

### Have you found anything relevant by searching the web?

_No response_

### Any other information, logs, or outputs that you want to share?

_No response_
@jdn-kvantify jdn-kvantify added awaiting-maintainer Awaiting review from Bazel team on issues type: bug labels Oct 3, 2024
@github-actions github-actions bot added the product: IntelliJ IntelliJ plugin label Oct 3, 2024
@mai93 mai93 assigned tpasternak and unassigned mai93 Oct 3, 2024
@agluszak agluszak assigned agluszak and unassigned tpasternak Oct 5, 2024
@agluszak agluszak changed the title plugin crashes and makes other IDE features unavailable [python] Components of QualifiedName cannot contain dots inside them, but got: python3.11 - code intelligence stops working Oct 5, 2024
@agluszak
Copy link
Collaborator

agluszak commented Oct 5, 2024

Can you please share a minimal reproducible example? What you described seems to be possible only in a very specific scenario. Is there something special in your python setup? Can you reproduce it with a hermetic python toolchain?

@agluszak agluszak added more-data-needed Awaiting response from issue author and removed awaiting-maintainer Awaiting review from Bazel team on issues labels Oct 5, 2024
@jdn-kvantify
Copy link
Author

Can you please share a minimal reproducible example? What you described seems to be possible only in a very specific scenario. Is there something special in your python setup? Can you reproduce it with a hermetic python toolchain?

@agluszak yes, will look into creating a minimal example. However, I am not sure it is related to my python setup, as it used to work with the same python setting I have now where I use a conda enviroment as project interpreter (we are using a hermetic python toolchain for bazel).

For now my workaround is downgrading the plugin to 2024.07.16.0.1-api-version-242 and everything works for me with no other change. If you wish we can close the issue for now and I will test future stable releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
more-data-needed Awaiting response from issue author product: IntelliJ IntelliJ plugin type: bug
Projects
Status: Untriaged
Development

No branches or pull requests

4 participants