ensure that if the server version is not valid semver, we use a default version (mongodb 8.0)

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • No version
    • Affects Version/s: None
    • Component/s: None
    • None
    • Environment:
      OS:
      node.js / npm versions:
      Additional info:
    • 1
    • Iteration D (June 2 - June 13), Iteration E (Jun 16 - 30), Iteration F (Jun 30 - Jul 14), Iteration G (Jul 14 - 28), Iteration H (Jul 28 - Aug 11), Iteration I (Aug 11 - Aug 25), Iteration L (Sept 22 - Oct 6)
    • Not Needed
    • Developer Tools

      The stacktrace shows that we weren't able to get the actual MongoDB version (returns <unknown>) so the semver parsing fails.

      The issue is likely in com.mongodb.jbplugin.accessadapter.slice.BuildInfo.Slice#runBuildInfoCommandIfConnected, as there is a race condition where a connected connection shutdowns while running BuildInfo. In that case, we return an invalid empty BuildInfo, but it should be valid so it works again later in the future when we connect again.

      During querying provider com.mongodb.jbplugin.codeActions.impl.RunQueryCodeActionBridge@2d4e00b1 (class com.mongodb.jbplugin.codeActions.impl.RunQueryCodeActionBridge)
      
      com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: io.github.z4kn4fein.semver.VersionFormatException: Invalid version: <unknown>
      	at com.intellij.idea.IdeaLogger.error(IdeaLogger.java:111)
      	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:191)
      	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.lambda$doCollectMarkers$2(LineMarkersPass.java:110)
      	at com.intellij.codeInsight.daemon.impl.Divider.divideInsideAndOutsideInOneRoot(Divider.java:96)
      	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectMarkers(LineMarkersPass.java:106)
      	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.doCollectInformation(LineMarkersPass.java:79)
      	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:435)
      	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:28)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:431)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction$lambda$11(AnyThreadWriteThreadingSupport.kt:522)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:522)
      	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1064)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:421)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:680)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:704)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:679)
      	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:77)
      	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.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:834)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:395)
      	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:197)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:393)
      	at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:267)
      	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
      	at java.base/java.util.concurrent.ForkJoinPool.helpJoin(ForkJoinPool.java:2326)
      	at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:495)
      	at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1032)
      	at com.intellij.concurrency.JobLauncherImpl.lambda$invokeConcurrentlyUnderProgressAsync$5(JobLauncherImpl.java:126)
      	at com.intellij.concurrency.JobLauncherImpl.safeIterate(JobLauncherImpl.java:177)
      	at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgressAsync(JobLauncherImpl.java:113)
      	at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:54)
      	at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:51)
      	at com.intellij.codeInsight.hints.codeVision.CodeVisionPass$Companion.collect(CodeVisionPass.kt:70)
      	at com.intellij.codeInsight.hints.codeVision.CodeVisionPass$Companion.access$collect(CodeVisionPass.kt:43)
      	at com.intellij.codeInsight.hints.codeVision.CodeVisionPass.doCollectInformation(CodeVisionPass.kt:111)
      	at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:435)
      	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:28)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:431)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction$lambda$11(AnyThreadWriteThreadingSupport.kt:522)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:522)
      	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1064)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:421)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:680)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:755)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:711)
      	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:679)
      	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:77)
      	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.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:834)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:395)
      	at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:197)
      	at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:393)
      	at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:267)
      	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)
      Caused by: io.github.z4kn4fein.semver.VersionFormatException: Invalid version: <unknown>
      	at io.github.z4kn4fein.semver.Version$Companion.parse(Version.kt:153)
      	at io.github.z4kn4fein.semver.Version$Companion.parse$default(Version.kt:146)
      	at com.mongodb.jbplugin.editor.CachedQueryService$decorateWithMetadata$1.invokeSuspend(CachedQueryService.kt:199)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
      	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
      	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:112)
      	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$BuildersKt__BuildersKt(Builders.kt:85)
      	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:53)
      	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
      	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:49)
      	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
      	at com.mongodb.jbplugin.editor.CachedQueryService.decorateWithMetadata(CachedQueryService.kt:182)
      	at com.mongodb.jbplugin.editor.CachedQueryService.queryAt(CachedQueryService.kt:75)
      	at com.mongodb.jbplugin.codeActions.AbstractMongoDbCodeActionBridge.dispatchIfValidMongoDbQuery$lambda$1(AbstractMongoDbCodeActionBridge.kt:60)
      	at com.mongodb.jbplugin.meta.CoroutinesExKt.withinReadActionBlocking$lambda$0(CoroutinesEx.kt:56)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction$lambda$9(AnyThreadWriteThreadingSupport.kt:367)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction$lambda$10(AnyThreadWriteThreadingSupport.kt:455)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:455)
      	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:367)
      	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:944)
      	at com.mongodb.jbplugin.meta.CoroutinesExKt.withinReadActionBlocking(CoroutinesEx.kt:55)
      	at com.mongodb.jbplugin.codeActions.AbstractMongoDbCodeActionBridge.dispatchIfValidMongoDbQuery(AbstractMongoDbCodeActionBridge.kt:52)
      	at com.mongodb.jbplugin.codeActions.AbstractMongoDbCodeActionBridge.getLineMarkerInfo(AbstractMongoDbCodeActionBridge.kt:49)
      	at com.intellij.codeInsight.daemon.impl.LineMarkersPass.queryProviders(LineMarkersPass.java:182)
      	... 62 more
      

            Assignee:
            Kevin Mas Ruiz
            Reporter:
            Kevin Mas Ruiz
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: