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

Exception on workspace/didChangeConfiguration messages #1784

Closed
tdcook opened this issue Mar 3, 2024 · 3 comments
Closed

Exception on workspace/didChangeConfiguration messages #1784

tdcook opened this issue Mar 3, 2024 · 3 comments
Labels
API Related to API / CLI bug Something isn't working

Comments

@tdcook
Copy link

tdcook commented Mar 3, 2024

Describe the bug
The server throws an exception java.lang.Exception: Unable to resolve spec: :lsp4clj.coercer/change-configration-of-error when receiving a workspace/didChangeConfiguration message. This causes the server to crash and eglot to get stuck in an infinite reconnection loop.

To Reproduce
Steps to reproduce the behavior:

  1. Open a project using emacs + eglot
  2. Run clojure-lsp
  3. See error

Expected behavior
No exception is thrown and the server handles the message properly.

clojure-lsp output
2024-03-03T01:04:49.399Z  ERROR [clojure-lsp.server:410] - Conformation exception :lsp4clj.coercer/change-configration-of-error
com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine  PosixPlatformThreads.java:  211
            com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine       PlatformThreads.java:  833
                                                     java.lang.Thread.run                Thread.java: 1583
                                                 java.lang.Thread.runWith                Thread.java: 1596
                       java.util.concurrent.ThreadPoolExecutor$Worker.run    ThreadPoolExecutor.java:  642
                        java.util.concurrent.ThreadPoolExecutor.runWorker    ThreadPoolExecutor.java: 1144
                   java.util.concurrent.CompletableFuture$AsyncSupply.run     CompletableFuture.java: 1768
                                                promesa.util.Supplier/get                  util.cljc:   34
                                            promesa.exec/wrap-bindings/fn                  exec.cljc:  163
                                                 clojure-lsp.server/fn/fn                 server.clj:  410
                                           lsp4clj.coercer/conform-or-log                coercer.clj:  491
                                               clojure.spec.alpha/conform                  alpha.clj:  171
                                               clojure.spec.alpha/specize                  alpha.clj:  159
                                                  clojure.spec.alpha/fn/G                  alpha.clj:  128
                                                    clojure.spec.alpha/fn                  alpha.clj:  139
                                          clojure.spec.alpha/reg-resolve!                  alpha.clj:   76
java.lang.Exception: Unable to resolve spec: :lsp4clj.coercer/change-configration-of-error

2024-03-03T01:04:54.095Z INFO [clojure-lsp.server:55] - Liveness probe - Parent process 2 is not running - exiting server
2024-03-03T01:04:54.095Z INFO [clojure-lsp.server:496] - Exiting...

User details (please complete the following information):

  • OS: Fedora Linux 39 + Emacs 29.1 + eglot
  • Version: clojure-lsp 2024.03.01-11.37.51

Additional context
It seems that the change-configration-of-error does not exist in lsp4clj.coercer.

@tdcook tdcook added API Related to API / CLI bug Something isn't working labels Mar 3, 2024
@ericdallo
Copy link
Member

@tdcook Fixed on master/nightly build, but I'd say this should not crash the server or affect client as this is a async notification handled by server, could you test with eglot later ?

@tdcook
Copy link
Author

tdcook commented Mar 3, 2024

@ericdallo That did resolve the exception. I'm still seeing the server crashing, but I don't see any error in the logs that would explain it. It might be an issue with my setup. I'll do more investigation.

@tdcook
Copy link
Author

tdcook commented Mar 3, 2024

I figured out the problem. The liveness probe was being given the incorrect process id since I am running in containers. I had to set eglot-withhold-process-id.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API Related to API / CLI bug Something isn't working
Projects
Status: Done
Development

No branches or pull requests

2 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy