-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Intellisense inifinitely tries to index folders that don't exist #13366
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
Comments
@Terbold This doesn't repro with 1.24.1, right? |
@Terbold Are you able to create a more minimal repro? i.e. are you able to repro it without compileCommands set? Otherwise, if compileCommands is required, are you able to provide a minimal compileCommands that repros it? |
@Terbold Do you know where the paths that can't be found like |
@Terbold Also, which config is being used |
This issue does not appear on 1.24.1 I don't think I am able to reduce the unreal engine repo, but I can provide a sample of the compile commands, it seems this is where the ghost directories are being included. The first configuration is used, compileCommands_rubidium_rooms.json
Each unreal engine module has an rsp file associated with it which include the necessary include files. I'm not sure if intellisense parsed these previously, but I've never had issues with intellisense autocomplete beforehand. |
In 1.24.1, the startup log for intellisense looks like this:
In 1.24.2, the startup log encounters the issue before building the list of folders to index
Eventually it gets to indexing list, after a couple minutes of erroring |
@Terbold Can you change your C_Cpp.loggingLevel to "Debug" with 1.24.2? There could be other important logging going on that would indicate the root cause. The "Unable to retrieve file system information for" logging just means an include path is used that doesn't exist and isn't in itself an error. |
@Terbold Also, can you try removing "includePath": [
"${workspaceFolder}/Engine/Source/**",
"${workspaceFolder}/Engine/Intermediate/**",
"${workspaceFolder}/Engine/Plugins/**"
], from your configuration to see if it fixes the issue? 1.24.2 introduced a fix/change which causes those includePaths to be processed for workspace symbols which was not occurring in prior versions when compileCommands is used. |
@Terbold Also, what is the workspace parsing status bar indicator show in the C/C++ status bar? i.e. does it show Indexing Workspace or a Tag parsing progress? Hovering over the link on the right may show more info. |
@sean-mcmanus Switched the logging to Debug and removed the include paths from the project and engine configs. This is the startup log now:
Then it repeats the errors again, no additional messages between repeats, eventually it gets to the indexing list:
Then it goes back to error looping. While it is doing this, the status bar says its "initializing". |
After removing the include directories, it does appear to be indexing a bit faster and autocomplete is smoothing out now, but I'm not sure how it compares to 1.24.1. I'll try it out a little bit more. |
@Terbold I believe simply removing the includePath may not be sufficient because we will add "includePath": [
"${workspaceFolder}/*"
], may improve the performance. We have a known regression in with the compiler querying caching into the database isn't working with 1.24.2. It's possible it could be querying the compiler for every compile_commands.json entry. |
@Terbold The "Initializing" message would mean the database is busy initializing (or it's busy processing the compile_commands.json) and hasn't started indexing/parsing yet. Does logging related to adding |
@Terbold I've reproed a major performance problem where it's stuck "Initializing" using compile_commands.json with an rsp file, but I repro the same issue with 1.24.1/1.23.6 -- the only difference is that 1.24.2 adds the "Unable to retrieve file system" logging, which is unrelated to the performance regression (or just potentially a symptom), because I get the same logging on Linux and it takes like 6 seconds but doing the same repro on mac takes me >2 minutes (stopped waiting). I think there's a performance problem with processing the mac frameworks (which don't exist on Linux). |
@Terbold Can you confirm if 1.24.1 or 1.23.6 is also stuck showing "Initializing" status for a long time? i.e. is the only difference with 1.24.2 the extra logging? |
@sean-mcmanus Apologies for the delay, I needed to make some progress on my project last night and switched back to 1.24.1. In 1.24.1 and 1.23.6 it may take a minute for the first initialization, but after that everything is smooth and subsequent rescans are almost instant or in worst case scenarios take up to 30 seconds (which is somewhat to be expected given the size of unreal engine). In 1.24.2, it seems that anything that causes it to rescan causes it to take 2-5 minutes or longer before highlighting and/or autocomplete will update. This includes things such as defining a new function in a class, adding a new class, adding a new include, etc, and when it finishes, sometimes it doesn't update the highlighting or autocomplete. In this state it is impossible to work with intellisense. After further testing, I don't think there was much difference in replacing the includePath with what you provided vs leaving them as I normally set them. |
I can try copying my project to my windows workstation a bit later and seeing if the same issue occurs, though I haven't turned that machine on in a while due to travel, hence why I've been working on my mac |
@sean-mcmanus this is the full log from an initialization of 1.24.2 |
@Terbold Okay, thanks -- I think we have enough info now and can repro the issue you're seeing using the .rsp file you provided. I see it take 30 seconds to Initialize on mac with 1.24.2 and nearly instantly with 1.24.1/1.23.6 (you might be hitting a more severe symptom but I think the root cause is the same). The issue I was seeing yesterday with 1.24.1/1.23.6 was with a modified .rsp file with 200 lines added, so that's probably a bug too, but not a regression. |
Environment
Bug Summary and Steps to Reproduce
Bug Summary:
Latest Intellisense version is looping trying to index folders that don't exist. Since the latest update, anytime I make a change to any C++ file and intellisense needs to rescan, it gets stuck in a loop for about 5-10 minutes trying to index a bunch of folders that do not exist and is barely functional. Reverting to last stable release is required.
Expected behavior:
Before the latest prerelease update, these errors did not appear and intellisense runs smoothly.
This log repeats every 1-2 seconds until the service gives up I guess
intellisense_log.txt
Configuration and Logs
Other Extensions
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: