Giter Club home page Giter Club logo

Comments (9)

chrissimon-au avatar chrissimon-au commented on August 16, 2024 1

It might be related. For Contextive the fix was to update the vscode-languageclient package from ^7.0.0 to ^8.1.0 to pick up microsoft/vscode-languageserver-node#776.

The Fable bindings update was necessitated by that because of https://github.com/microsoft/vscode-languageserver-node#3170-protocol-800-json-rpc-800-client-and-800-server.

Looking at ionide-vscode-fsharp it's currently on [email protected] so in theory it should have picked up the exit fix which came in in 8.0.0.

However, the start function looks like it is still using the disposable approach... which means that at runtime, a promise is being added to the subscriptions array and not being awaited. This might be causing other issues... e.g. just speculating but perhaps when the elements of the subscriptions array are being disposed it fails because the promise doesn't have a dispose method?

Doesn't necessarily correlate with the fact that the shutdown issue is only affecting things when --adaptive-lsp-server-enabled though.

So, in short, I do recommend updating the bindings and updating the languageclient.start call to be awaited as per the guidance here: https://github.com/microsoft/vscode-languageserver-node#3170-protocol-800-json-rpc-800-client-and-800-server - but it's only speculative that it will have any impact on the issue you're investigating here.

from fsautocomplete.

baronfel avatar baronfel commented on August 16, 2024

@TheAngryByrd is there any disposable/potentially-blocking shutdown logic on the ALSP that differs significantly from the old LSP? I took a look and didn't see anything. @rmunn it might be worth taking a memory dump of the FSAC process if this happens again so we can see where the threads are - I'd expect that the shutdown LSP method would be called and/or the Cancellation of the System.CommandLine command handler would have been triggered here.

from fsautocomplete.

TheAngryByrd avatar TheAngryByrd commented on August 16, 2024

Yeah I haven't experienced this at all but I'm primarily on windows now. Maybe there's something with osx?

from fsautocomplete.

TheAngryByrd avatar TheAngryByrd commented on August 16, 2024

Hmm I wonder if dev-cycles/contextive#44 is the same issue.

from fsautocomplete.

TheAngryByrd avatar TheAngryByrd commented on August 16, 2024

hey @chrissimon-au, this feels like the same issue. I see you updated the Fable bindings on your end, was that the proper fix or was there something more deep there?

from fsautocomplete.

TheAngryByrd avatar TheAngryByrd commented on August 16, 2024

Interestingly we're not the only plugin that's having issues on MacOS dotnet/interactive#1650.

I'm able to repro it not closing on macos as well. I'll probably have a fix a bit later tonight. Seems like calling exit directly works.

from fsautocomplete.

Darkle avatar Darkle commented on August 16, 2024

FWIW I'm having the same issue on Debian Linux. I also have adaptive lsp server enabled.

from fsautocomplete.

TheAngryByrd avatar TheAngryByrd commented on August 16, 2024

This really does feel runtime related

I'll get a dotnet-dump later and see if I can analyze it

from fsautocomplete.

TheAngryByrd avatar TheAngryByrd commented on August 16, 2024

Idk what I'm looking for so I'm just gonna accept the PR that forces exit since it should be exiting anyway.

from fsautocomplete.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.