Skip to content

IntelliJ IDEA freezes due to long running read action #21

Description

@egorklepikov

Original issue was reported here
Related thread dump:

"JobScheduler FJ pool 12/19" prio=0 tid=0x0 nid=0x0 runnable
     java.lang.Thread.State: RUNNABLE

	at org.jetbrains.kotlin.fir.types.ConeFlexibleType.hashCode(ConeTypes.kt:152)
	at java.base@21.0.7/java.util.Arrays.hashCode(Arrays.java:4599)
	at org.jetbrains.kotlin.fir.types.ConeLookupTagBasedType.hashCode(ConeTypes.kt:106)
	at org.jetbrains.kotlin.fir.types.ConeFlexibleType.hashCode(ConeTypes.kt:152)
	at java.base@21.0.7/java.util.Arrays.hashCode(Arrays.java:4599)
	at org.jetbrains.kotlin.fir.types.ConeLookupTagBasedType.hashCode(ConeTypes.kt:106)
	at java.base@21.0.7/java.util.HashMap.hash(HashMap.java:338)
	at java.base@21.0.7/java.util.HashMap.getNode(HashMap.java:576)
	at java.base@21.0.7/java.util.HashMap.containsKey(HashMap.java:602)
	at java.base@21.0.7/java.util.HashSet.contains(HashSet.java:213)
	at org.jetbrains.kotlin.util.ContainerUtilsKt$bfs$1.invokeSuspend(containerUtils.kt:17)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:129)
	at kotlin.sequences.DropSequence$iterator$1.hasNext(Sequences.kt:559)
	at org.jetbrains.kotlin.analysis.api.fir.components.KaFirTypeProvider$allSupertypes$1$1.invokeSuspend(KaFirTypeProvider.kt:297)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:129)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:167)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.isClassId(Utils.kt:76)
	at arrow.intellij.UtilsKt.hasContextWithClassId(Utils.kt:100)
	at arrow.intellij.gutter.RaiseGutter.getLineMarkerInfo(RaiseGutter.kt:27)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:183)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.lambda$doCollectMarkers$2(LineMarkersPass.java:117)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass$$Lambda/0x00007f97fd66b7a0.process(Unknown Source)
	at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:96)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectMarkers(LineMarkersPass.java:107)
	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:79)
	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:71)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:435)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x00007f97fd659f78.invoke(Unknown Source)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:29)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:431)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x00007f97fd659548.run(Unknown Source)
	at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.tryRunReadAction(NestedLocksThreadingSupport.kt:826)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1207)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:421)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x00007f97fd659300.run(Unknown Source)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:681)
	at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda/0x00007f97fc59cb38.compute(Unknown Source)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:756)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:712)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:680)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:420)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:395)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x00007f97fd64e700.run(Unknown Source)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:852)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:395)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x00007f97fd64e4b8.run(Unknown Source)
	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:258)
	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:393)
	at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:265)
	at java.base@21.0.7/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base@21.0.7/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
	at java.base@21.0.7/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
	at java.base@21.0.7/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
	at java.base@21.0.7/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions