redhat-developer / redhat-developer/lsp4ij

Global Search will hang if LSP doesn't respond, need LSP feature filtering when LSP and another language plugin are installed at the same time

Open
#722 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
344
Forks
113
Avg merge
5h 22m
Merged PRs (30d)
15

Description

Here is a screenshot:

Image

The search will last forever.

The associated LSP (Scala metaLS) crashed (presumably due to a bug):

2024.12.28 14:36:14 INFO  logging to files /home/peng/git/shapesafe/splain/.metals/metals.log
2024.12.28 14:36:14 INFO  Started: Metals version 1.4.2 in folders '/home/peng/git/shapesafe/splain' for client IntelliJ IntelliJ IDEA (build IC-243.22562.218).
2024.12.28 14:36:14 INFO  Database: jdbc:h2:file:/home/peng/git/shapesafe/splain/.metals/metals (H2 2.3)
2024.12.28 14:36:14 INFO  Successfully validated 6 migrations (execution time 00:00.029s)
2024.12.28 14:36:14 INFO  Current version of schema "PUBLIC": 6
2024.12.28 14:36:14 INFO  Schema "PUBLIC" is up to date. No migration necessary.
2024.12.28 14:36:15 INFO  Database: jdbc:h2:file:/tmp/fallback-service1497970644345637716/.metals/metals (H2 2.3)
2024.12.28 14:36:15 INFO  Schema history table "PUBLIC"."flyway_schema_history" does not exist yet
2024.12.28 14:36:15 INFO  Successfully validated 6 migrations (execution time 00:00.003s)
2024.12.28 14:36:15 INFO  Creating Schema History table "PUBLIC"."flyway_schema_history" ...
2024.12.28 14:36:15 INFO  Current version of schema "PUBLIC": << Empty Schema >>
2024.12.28 14:36:15 INFO  Migrating schema "PUBLIC" to version "1 - Create tables"
2024.12.28 14:36:15 INFO  Migrating schema "PUBLIC" to version "2 - Server discovery"
2024.12.28 14:36:15 INFO  Migrating schema "PUBLIC" to version "3 - Jar symbols"
2024.12.28 14:36:15 INFO  Migrating schema "PUBLIC" to version "4 - Fingerprints"
2024.12.28 14:36:15 INFO  Migrating schema "PUBLIC" to version "5 - Jar type hierarchy"
2024.12.28 14:36:15 INFO  Migrating schema "PUBLIC" to version "6 - Delete indices"
2024.12.28 14:36:15 INFO  Successfully applied 6 migrations to schema "PUBLIC", now at version v6 (execution time 00:00.035s)
2024.12.28 14:36:15 INFO  Attempting to connect to the build server...
2024.12.28 14:36:15 INFO  No running Bloop server found, starting one.
2024.12.28 14:36:17 INFO  Starting compilation server
2024.12.28 14:36:18 INFO  tracing is disabled for protocol BSP, to enable tracing of incoming and outgoing JSON messages create an empty file at /home/peng/git/shapesafe/splain/.metals/bsp.trace.json or /home/peng/.cache/metals/bsp.trace.json
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.13.6/22973a59257545499e15c6e7f6332ce201c87a8/scala-compiler-2.13.6.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.13.6/22973a59257545499e15c6e7f6332ce201c87a8/scala-compiler-2.13.6.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.19.0/27edf6497c4fac20b63ca4cd8788581ca86cb83e/jline-3.19.0.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.24.1/babbac968fafe76884b0cf41124569e8bc004d04/jline-3.24.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.3.1/6eb9d07456c56b9c2560722e90382252f0f98405/jna-5.3.1.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/org.jline/jline/3.19.0/27edf6497c4fac20b63ca4cd8788581ca86cb83e/jline-3.19.0.jar doesn't exist!
2024.12.28 14:36:18 WARN  Scala instance jar /home/peng/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.3.1/6eb9d07456c56b9c2560722e90382252f0f98405/jna-5.3.1.jar doesn't exist!
2024.12.28 14:36:18 ERROR Bloop server PID: 21826
Ignoring SIGINT
Will truncate output file /home/peng/.local/share/scalacli/bloop/daemon/output every 5 minutes
SLF4J(I): Connected with provider of type [ch.qos.logback.classic.spi.LogbackServiceProvider]
Unable to load nailgun-version.properties.
NGServer [UNKNOWN] started on local socket /home/peng/.local/share/scalacli/bloop/daemon/socket.
/home/peng/.local/share/scalacli/bloop
/home/peng/.local/share/scalacli/bloop

2024.12.28 14:36:18 ERROR Failed to connect with build server, no functionality will work.
java.util.concurrent.ExecutionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: bloop.data.Project$ProjectReadException: Failed to load project from /home/peng/git/shapesafe/splain/.bloop/core.json
	at bloop.data.Project$.fromBytesAndOrigin(Project.scala:276)
	at bloop.engine.BuildLoader$.loadProject(BuildLoader.scala:264)
	at bloop.engine.BuildLoader$.$anonfun$loadBuildIncrementally$3(BuildLoader.scala:59)
	at monix.eval.internal.TaskRunLoop$.startFull(TaskRunLoop.scala:81)
	at monix.eval.internal.TaskRestartCallback.syncOnSuccess(TaskRestartCallback.scala:101)
	at monix.eval.internal.TaskRestartCallback.onSuccess(TaskRestartCallback.scala:74)
	at monix.eval.internal.TaskShift$Register$$anon$1.run(TaskShift.scala:65)
	at monix.execution.internal.InterceptRunnable.run(InterceptRunnable.scala:27)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.nio.file.NoSuchFileException: /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
	at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148)
	at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
	at java.base/java.nio.file.Files.readAttributes(Files.java:1851)
	at bloop.ScalaInstance.$anonfun$hashCode$1(ScalaInstance.scala:114)
	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286)
	at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
	at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
	at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
	at scala.collection.TraversableLike.map(TraversableLike.scala:286)
	at scala.collection.TraversableLike.map$(TraversableLike.scala:279)
	at scala.collection.AbstractTraversable.map(Traversable.scala:108)
	at bloop.ScalaInstance.<init>(ScalaInstance.scala:110)
	at bloop.ScalaInstance$.newInstance$1(ScalaInstance.scala:198)
	at bloop.ScalaInstance$.$anonfun$apply$9(ScalaInstance.scala:204)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at bloop.ScalaInstance$.apply(ScalaInstance.scala:204)
	at bloop.data.Project$.$anonfun$fromConfig$1(Project.scala:298)
	at scala.Option.flatMap(Option.scala:271)
	at bloop.data.Project$.fromConfig(Project.scala:287)
	at bloop.data.Project$.fromBytesAndOrigin(Project.scala:270)
	... 10 more

	at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096)
	at scala.meta.internal.metals.BuildServerConnection$.initialize(BuildServerConnection.scala:755)
	at scala.meta.internal.metals.BuildServerConnection$.$anonfun$fromSockets$1(BuildServerConnection.scala:630)
	at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:467)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(Thread.java:840)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: bloop.data.Project$ProjectReadException: Failed to load project from /home/peng/git/shapesafe/splain/.bloop/core.json
	at bloop.data.Project$.fromBytesAndOrigin(Project.scala:276)
	at bloop.engine.BuildLoader$.loadProject(BuildLoader.scala:264)
	at bloop.engine.BuildLoader$.$anonfun$loadBuildIncrementally$3(BuildLoader.scala:59)
	at monix.eval.internal.TaskRunLoop$.startFull(TaskRunLoop.scala:81)
	at monix.eval.internal.TaskRestartCallback.syncOnSuccess(TaskRestartCallback.scala:101)
	at monix.eval.internal.TaskRestartCallback.onSuccess(TaskRestartCallback.scala:74)
	at monix.eval.internal.TaskShift$Register$$anon$1.run(TaskShift.scala:65)
	at monix.execution.internal.InterceptRunnable.run(InterceptRunnable.scala:27)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.nio.file.NoSuchFileException: /home/peng/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.13.13/3b1434403ddb147b8030f98f246153e4ce622c78/scala-library-2.13.13.jar
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
	at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148)
	at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
	at java.base/java.nio.file.Files.readAttributes(Files.java:1851)
	at bloop.ScalaInstance.$anonfun$hashCode$1(ScalaInstance.scala:114)
	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286)
	at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
	at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
	at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
	at scala.collection.TraversableLike.map(TraversableLike.scala:286)
	at scala.collection.TraversableLike.map$(TraversableLike.scala:279)
	at scala.collection.AbstractTraversable.map(Traversable.scala:108)
	at bloop.ScalaInstance.<init>(ScalaInstance.scala:110)
	at bloop.ScalaInstance$.newInstance$1(ScalaInstance.scala:198)
	at bloop.ScalaInstance$.$anonfun$apply$9(ScalaInstance.scala:204)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at bloop.ScalaInstance$.apply(ScalaInstance.scala:204)
	at bloop.data.Project$.$anonfun$fromConfig$1(Project.scala:298)
	at scala.Option.flatMap(Option.scala:271)
	at bloop.data.Project$.fromConfig(Project.scala:287)
	at bloop.data.Project$.fromBytesAndOrigin(Project.scala:270)
	... 10 more

	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:220)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:204)
	at scala.meta.internal.metals.RequestMonitorImpl$$anon$1.consume(ServerLivenessMonitor.scala:41)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:185)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:97)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:114)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(Thread.java:840)

2024.12.28 14:36:18 INFO  Selected port 5031
2024.12.28 14:36:18 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala-2.13.7+/latest/splain/SplainAnalyzer.scala. Using presentation compiler with project's scala-library version: 3.3.4
2024.12.28 14:36:18 INFO  Started Metals http server at http://127.0.0.1:5031
2024.12.28 14:36:20 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala/splain/PluginSettings.scala. Using presentation compiler with project's scala-library version: 3.3.4
2024.12.28 14:36:21 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala-2.13.7+/latest/splain/TyperCompatViews.scala. Using presentation compiler with project's scala-library version: 3.3.4
2024.12.28 14:36:20 INFO  time: code lens generation in 2.9s
2024.12.28 14:36:21 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala-2.13.7+/latest/splain/SplainFormattersExtension.scala. Using presentation compiler with project's scala-library version: 3.3.4
2024.12.28 14:36:22 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala-2.13.7+/latest/splain/SplainFormattingExtension.scala. Using presentation compiler with project's scala-library version: 3.3.4
2024.12.28 14:36:32 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala/splain/PluginSettings.scala. Using presentation compiler with project's scala-library version: 3.3.4
2024.12.28 14:36:32 INFO  no build target found for /home/peng/git/shapesafe/splain/core/src/main/scala/splain/PluginSettings.scala. Using presentation compiler with project's scala-library version: 3.3.4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing Global Search with the Scala metaLS server unavailable, then trace the LSP request handling and feature filtering involved in the search. Done means Global Search terminates when the LSP does not respond and selects only the applicable LSP features when another language plugin is also installed.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, scala
Domain
devtools, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.