Closed SimonSapin closed 1 year ago
Have you tried uninstalling and reinstalling the code extension? Maybe disabling nightly too
I think automatic updates might have broken around that time.
It's unlikely to help with the infinite loop though; that might be the same as #7680 or #7796.
Is 2021-04-12-92-g7570212a5
a Nightly version? I have "rust-analyzer.updates.channel": "stable"
in settings, though
Removing the ~/.config/Code\ -\ OSS/User/globalStorage/matklad.rust-analyzer/
directory and reinstalling the extension downloads the same version again.
It's probably stable; there was a bug with the version number generation. What version of the rust-analyzer plugin do you have installed?
The just-reinstalled VSCode extension is v0.2.563. I believe it was previously the same, since it said "no update available" when I made it check.
This week's stable release version is 0.2.591, so your version is one month old it seems
Probably related to being on the OSS version of VSCode?
Indeed, I’m using the Archlinux package which doesn’t have "Microsoft specific customizations" that upstream builds have. Is any of these customizations known to affect the rust-analyzer extension?
How does the extension decide which version of the server executable to download? Is there config to influence that, beyond the stable v.s. nightly switch?
I don't use VSCode, but IIRC, the OSS version doesn't have the official Marketplace, but a different one. We don't publish to that other marketplace, but I think they mirror the extension; there might be a delay though.
The extension version directly controls the downloaded stable version, so if you're on a month-old extension, you get a month-old server version as well.
I also have this problem, I manually download and install from here https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer
Oh indeed! TIL that the Archlinux package is configured to use https://open-vsx.org/ instead of Microsoft’s Marketplace. This explains a lot. It’s also in the documented differences. I’ll try to get the version there updated, or failing that install the .vsix
manually.
@kekeimiku if you mean the endless loop, as mentioned that's probably one of the linked issues above.
With the v0.2.591
extension and rust-analyzer fd109fb58 2021-05-10 stable
server I still see the same symptoms. This may be another case of https://github.com/rust-analyzer/rust-analyzer/issues/7796.
Unfortunately this makes rust-analyzer unusable for me, since this hang happens fairly quickly every time I restart the IDE with the extension enabled on this project :(
windows 10 rust gnu user, same problem here. temporary switch back to RLS.
For now I’ve downgraded to v0.2.538 (from the .vsix
file) and disabled automatic extension updates, and haven’t reproduced this bug since. (This isn’t a precise bisection, just a guess based on dates in https://github.com/rust-analyzer/rust-analyzer/releases and when I remember starting to see this bug.)
FWIW, I can't reproduce this with analysis-stats
(or even analysis-stats --with-deps
).
I ran into this quite frequently on rust-analyzer 2021-11-29, with the same call stack.
Is it possible to make a hard time limit for chulk as workaround?
Closing as this was likely a chalk bug
2021-04-12 seems kinda old but I don’t know how to update it. VSCode says the extension is up to date.
I don’t know what situations trigger this, but while working on Mercurial I semi-often have a rust-analyzer process (started by VSCode) start using ~100% of one CPU thread and stop responding to any query. In particular, saving a file does nothing at first while the editor waits for the formatter to respond. Only after three seconds does a "Waiting" dialog appear with a "Cancel" button, which allows saving without formatting. The only viable way to continue working is to disable the rust-analyzer extension entirely.
Disabling the extension or exiting the editor leaves that process running and eating CPU until I kill it manually.
perf top -p
shows almost all of the time is spent in__memmove_avx_unaligned_erms
. Startinggdb -p
to stop the process at a random time and usingthread apply all where
shows many threads waiting and one with the following call stack:Stack
```rust Thread 27 (LWP 595217 "rust-analyzer-x"): #0 0x00007f288cd83897 in __memmove_avx_unaligned_erms () from /usr/lib/libc.so.6 #1 0x000055e9b042e375 in chalk_solve::infer::unify::