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

"The OCaml Platform VS Code extension server crashed 5 times in the last 3 minutes" #818

Closed
anchpop opened this issue Jan 10, 2022 · 8 comments
Labels
upstream Issues that need to be addressed in upstream projects

Comments

@anchpop
Copy link

anchpop commented Jan 10, 2022

Thanks for the awesome extension. It was working fine, but recently I've been getting this popup:

The OCaml Platform VS Code extension server crashed 5 times in the last 3 minutes. The server will not be restarted.

I'm using esy, with @opam/ocaml-lsp-server@opam:1.9.1@1397dba9 as a devdependency. The problem persists after uninstalling and reinstalling ocamllabs.ocaml-platform, quitting vscode, etc. (I have the extension configured to use the esy sandbox.)

@ulugbekna
Copy link
Collaborator

Hi, can you open the output pane in vscode, set the "OCaml Language Server" in the dropdown and tell us why ocaml-lsp is crashing? See the screenshot for what "output pane" is and the value set for the dropdown:

image

Is the 1397dba9 commit hash? git show 1397dba9 in the ocaml-lsp repo doesn't yield anything, so I wonder where this commit comes from

@anchpop
Copy link
Author

anchpop commented Jan 10, 2022

Is the 1397dba9 commit hash? git show 1397dba9 in the ocaml-lsp repo doesn't yield anything, so I wonder where this commit comes from

Not sure, I just grabbed it from esy.lock/index.json. I can try using the LSP's main branch directly instead of pulling from opam, if you think that might help.

Hi, can you open the output pane in vscode, set the "OCaml Language Server" in the dropdown and tell us why ocaml-lsp is crashing? See the screenshot for what "output pane" is and the value set for the dropdown:

Ah, it seems like an issue with the reason version. My esy.lock says I'm on "@esy-ocaml/[email protected]@d41d8cd9", which seems like the same version as on NPM. Any ideas?

[Error - 8:49:48 PM] Request textDocument/codeAction failed.
  Message: uncaught exception
  Code: -32603 
[object Object]
ocamllsp: internal error, uncaught exception:
          Abort: /-----------------------------------------------------------------------
          | Internal error: Uncaught exception.
          | Failure("Extension reason implementation AST has incompatible version \"Caml1999M029\" (expected \"Caml1999M030\")")
          | Raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Ocaml_lsp_server__Action_type_annotate.check_typeable_context in file "ocaml-lsp-server/src/code_actions/action_type_annotate.ml", line 8, characters 14-45
          | Called from Ocaml_lsp_server__Action_type_annotate.code_action.(fun) in file "ocaml-lsp-server/src/code_actions/action_type_annotate.ml", line 48, characters 22-63
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Query_commands.dispatch in file "ocaml-lsp-server/vendor/merlin/src/frontend/query_commands.ml", line 481, characters 16-47
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Query_commands.dispatch in file "ocaml-lsp-server/vendor/merlin/src/frontend/query_commands.ml", line 481, characters 16-47
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Query_commands.dispatch in file "ocaml-lsp-server/vendor/merlin/src/frontend/query_commands.ml", line 656, characters 16-47
          | Called from Ocaml_lsp_server.set_diagnostics.(fun) in file "ocaml-lsp-server/src/ocaml_lsp_server.ml", line 203, characters 27-67
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at Stdune__Exn.raise_with_backtrace in file "submodules/dune/otherlibs/stdune-unstable/exn.ml" (inlined), line 36, characters 27-56
          | Called from Stdune__Exn_with_backtrace.reraise in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 18, characters 33-71
          | Called from Fiber.O.(>>|).(fun) in file "submodules/dune/src/fiber/fiber.ml", line 288, characters 36-41
          | Called from Fiber.Execution_context.run_jobs in file "submodules/dune/src/fiber/fiber.ml", line 204, characters 8-13
          | Re-raised at Stdune__Exn.raise_with_backtrace in file "submodules/dune/otherlibs/stdune-unstable/exn.ml" (inlined), line 36, characters 27-56
          | Called from Stdune__Exn_with_backtrace.reraise in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 18, characters 33-71
          | Called from Fiber.Execution_context.forward_error in file "submodules/dune/src/fiber/fiber.ml" (inlined), line 132, characters 4-43
          | Called from Fiber.Execution_context.run_jobs in file "submodules/dune/src/fiber/fiber.ml", line 208, characters 6-23
          | Called from Fiber.Execution_context.run.(fun).loop in file "submodules/dune/src/fiber/fiber.ml", line 226, characters 12-27
          | Called from Stdune__Exn.protectx in file "submodules/dune/otherlibs/stdune-unstable/exn.ml", line 12, characters 8-11
          | Re-raised at Stdune__Exn.protectx in file "submodules/dune/otherlibs/stdune-unstable/exn.ml", line 18, characters 4-11
          | Called from Fiber_unix__Scheduler.run_result in file "fiber-unix/src/scheduler.ml", line 458, characters 10-27
          \-----------------------------------------------------------------------
          
          
          Raised at Fiber_unix__Scheduler.run in file "fiber-unix/src/scheduler.ml", line 473, characters 15-30
          Called from Cmdliner_term.app.(fun) in file "ocaml-lsp-server/vendor/cmdliner/src/cmdliner_term.ml", line 25, characters 19-24
          Called from Cmdliner.Term.run in file "ocaml-lsp-server/vendor/cmdliner/src/cmdliner.ml", line 117, characters 32-39
[Info  - 8:49:48 PM] Connection to server got closed. Server will restart.
[Error - 8:49:49 PM] Request textDocument/codeAction failed.
  Message: uncaught exception
  Code: -32603 
[object Object]
ocamllsp: internal error, uncaught exception:
          Abort: /-----------------------------------------------------------------------
          | Internal error: Uncaught exception.
          | Failure("Extension reason implementation AST has incompatible version \"Caml1999M029\" (expected \"Caml1999M030\")")
          | Raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Ocaml_lsp_server__Action_type_annotate.check_typeable_context in file "ocaml-lsp-server/src/code_actions/action_type_annotate.ml", line 8, characters 14-45
          | Called from Ocaml_lsp_server__Action_type_annotate.code_action.(fun) in file "ocaml-lsp-server/src/code_actions/action_type_annotate.ml", line 48, characters 22-63
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Query_commands.dispatch in file "ocaml-lsp-server/vendor/merlin/src/frontend/query_commands.ml", line 481, characters 16-47
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Query_commands.dispatch in file "ocaml-lsp-server/vendor/merlin/src/frontend/query_commands.ml", line 481, characters 16-47
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at CamlinternalLazy.do_force_block.(fun) in file "camlinternalLazy.ml", line 78, characters 50-57
          | Called from CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 71, characters 17-27
          | Re-raised at CamlinternalLazy.do_force_block in file "camlinternalLazy.ml", line 81, characters 4-11
          | Called from Mpipeline.typer_result in file "ocaml-lsp-server/vendor/merlin/src/kernel/mpipeline.ml" (inlined), line 128, characters 21-30
          | Called from Query_commands.dispatch in file "ocaml-lsp-server/vendor/merlin/src/frontend/query_commands.ml", line 656, characters 16-47
          | Called from Ocaml_lsp_server.set_diagnostics.(fun) in file "ocaml-lsp-server/src/ocaml_lsp_server.ml", line 203, characters 27-67
          | Called from Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 685, characters 8-12
          | Re-raised at Merlin_utils__Std.let_ref in file "ocaml-lsp-server/vendor/merlin/src/utils/std.ml", line 687, characters 30-39
          | Called from Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 45, characters 8-15
          | Re-raised at Merlin_utils__Misc.try_finally in file "ocaml-lsp-server/vendor/merlin/src/utils/misc.ml", line 62, characters 10-24
          | Called from Stdlib__fun.protect in file "fun.ml", line 33, characters 8-15
          | Re-raised at Stdlib__fun.protect in file "fun.ml", line 38, characters 6-52
          | Called from Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 18, characters 8-38
          | Re-raised at Mocaml.with_state in file "ocaml-lsp-server/vendor/merlin/src/kernel/mocaml.ml", line 20, characters 42-53
          | Called from Stdune__Exn_with_backtrace.try_with in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 9, characters 8-12
          | Re-raised at Stdune__Exn.raise_with_backtrace in file "submodules/dune/otherlibs/stdune-unstable/exn.ml" (inlined), line 36, characters 27-56
          | Called from Stdune__Exn_with_backtrace.reraise in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 18, characters 33-71
          | Called from Fiber.O.(>>|).(fun) in file "submodules/dune/src/fiber/fiber.ml", line 288, characters 36-41
          | Called from Fiber.Execution_context.run_jobs in file "submodules/dune/src/fiber/fiber.ml", line 204, characters 8-13
          | Re-raised at Stdune__Exn.raise_with_backtrace in file "submodules/dune/otherlibs/stdune-unstable/exn.ml" (inlined), line 36, characters 27-56
          | Called from Stdune__Exn_with_backtrace.reraise in file "submodules/dune/otherlibs/stdune-unstable/exn_with_backtrace.ml", line 18, characters 33-71
          | Called from Fiber.Execution_context.forward_error in file "submodules/dune/src/fiber/fiber.ml" (inlined), line 132, characters 4-43
          | Called from Fiber.Execution_context.run_jobs in file "submodules/dune/src/fiber/fiber.ml", line 208, characters 6-23
          | Called from Fiber.Execution_context.run.(fun).loop in file "submodules/dune/src/fiber/fiber.ml", line 226, characters 12-27
          | Called from Stdune__Exn.protectx in file "submodules/dune/otherlibs/stdune-unstable/exn.ml", line 12, characters 8-11
          | Re-raised at Stdune__Exn.protectx in file "submodules/dune/otherlibs/stdune-unstable/exn.ml", line 18, characters 4-11
          | Called from Fiber_unix__Scheduler.run_result in file "fiber-unix/src/scheduler.ml", line 458, characters 10-27
          \-----------------------------------------------------------------------
          
          
          Raised at Fiber_unix__Scheduler.run in file "fiber-unix/src/scheduler.ml", line 473, characters 15-30
          Called from Cmdliner_term.app.(fun) in file "ocaml-lsp-server/vendor/cmdliner/src/cmdliner_term.ml", line 25, characters 19-24
          Called from Cmdliner.Term.run in file "ocaml-lsp-server/vendor/cmdliner/src/cmdliner.ml", line 117, characters 32-39
[Error - 8:49:49 PM] Connection to server is erroring. Shutting down server.

@rgrinberg
Copy link
Contributor

@let-def how should we catch errors like this? Can we assume that every Failure _ raised by merlin is non fatal?

@let-def
Copy link

let-def commented Jan 11, 2022

In this case Merlin will never be able to process AST sent by reason. The internal state is not corrupted, but Merlin won't give any useful information until reason is fixed.
We can improve the error message (make it a specific exception?), but it will remain an exception.

@rgrinberg
Copy link
Contributor

We can improve the error message (make it a specific exception?), but it will remain an exception.

Could you make it a specific exception? E.g. Merlin_extend_failure or the like?

@let-def
Copy link

let-def commented Jan 12, 2022

Sounds good, I will add that.

@anchpop
Copy link
Author

anchpop commented Jan 14, 2022

Thank you!

@rgrinberg rgrinberg added the upstream Issues that need to be addressed in upstream projects label Jan 30, 2022
@rgrinberg
Copy link
Contributor

Fixed in ocaml/ocaml-lsp#608

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
upstream Issues that need to be addressed in upstream projects
Projects
None yet
Development

No branches or pull requests

4 participants