FsAutoComplete icon indicating copy to clipboard operation
FsAutoComplete copied to clipboard

FsAutoComplete hangs

Open romanprocopie opened this issue 2 years ago • 2 comments

Hi guys,

I am having some bad luck using a Linux computer as a F# dev machine. Ubuntu Budgie 20.04 VS Code 1.65.0 ionide-fsharp 5.11.0 fsautocomplete 0.50.0 (checked by running "dotnet fsautocomplete.dll --version" in ionide bin folder)

This doesn't reproduce if I just create a fresh solution with a console app. But a solution with cca 20 projects has this problem The problem is intermittently happening since a few months and it seems to sort out by itself on some updates and then re-appear. I don't have more evidence of this (yet) The solution is built and run ok from command line. The problem does not reproduce on MacOS with same version of vscode, ionide-fsharp and fsautocompletre The problem is happening very consistently now on both my computers running Linux.

Symptoms are as follows.

  • Open VScode and load solution
  • FSHarp icon appears on the VSCode side bar
  • All projects appear as empty and with status (not loaded yet)
  • Some time later, from minutes to tens of minutes I can see an Ubuntu popup that the following command failed with SIGABRT dotnet --roll-forward LatestMajor /home/rprocopie/.vscode/extensions/ionide.ionide-fsharp-5.11.0/bin/fsautocomplete.backgroundservices.dll 15182
  • 15182 is actually the PID of the parent process with command /usr/bin/dotnet --roll-forward LatestMajor /home/rprocopie/.vscode/extensions/ionide.ionide-fsharp-5.11.0/bin/fsautocomplete.dll --background-service-enabled
  • Parent process stays in the memory and doesn't do anything for ages

Any help/hints in diagnosing this issue will be highly appreciated.

romanprocopie avatar Mar 05 '22 20:03 romanprocopie

can you set "FSharp.trace.server" to "verbose" and "Fsharp.verboseLogging" to "true" in your settings, then reload? then in the F# output pane you should at least see LSP requests and responses going back and forth.

baronfel avatar Mar 07 '22 21:03 baronfel

Many thanks. So having loaded 2 projects (problematic project and a simplistic f# console one), I can see a difference. Problematic project log gets to

[Trace - 11:17:57 PM] Sending request 'fsharp/loadAnalyzers - (3)'. Params: { "Project": { "Uri": "" } }

[23:17:57.296 INF] [LSP] LoadAnalyzers Request: [[[[[]]]]] [23:17:57.296 INF] [Analyzers] Analyzers disabled [23:17:57.425 INF] [CheckerEvents] Script typecheck dependencies changed, purging expired script options [23:17:57.425 INF] [CheckerEvents] Script typecheck dependencies changed, purged 0 expired script options [Trace - 11:17:57 PM] Received response 'fsharp/loadAnalyzers - (3)' in 137ms. No result returned.

It won't get any further than that.

The simplistic project log however writes quite a few hundred logs further.

romanprocopie avatar Mar 07 '22 21:03 romanprocopie