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

Workbench doesn't finish loading when Extensions viewlet is first to load #40425

Closed
joaomoreno opened this issue Dec 18, 2017 · 15 comments
Closed
Assignees
Labels
freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues important Issue identified as high-priority verified Verification succeeded

Comments

@joaomoreno
Copy link
Member

joaomoreno commented Dec 18, 2017

Windows

  1. In Dev, have no extensions in the extensions folder
  2. Open the Extensions viewlet
  3. Close Code
  4. Open it again .\scripts\code

kapture 2017-12-18 at 10 42 30

@bpasero
Copy link
Member

bpasero commented Dec 18, 2017

Weird, I cannot reproduce :-/

@bpasero bpasero added freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues important Issue identified as high-priority labels Dec 18, 2017
@bpasero bpasero added this to the December 2017/January 2018 milestone Dec 18, 2017
@bpasero
Copy link
Member

bpasero commented Dec 18, 2017

@sandy081 any chance some call on the restore of the extensions viewlet waits on the extension service to be ready?

@sandy081
Copy link
Member

@bpasero Extensions viewlet has no dependency on extensions ready promise.

@bpasero
Copy link
Member

bpasero commented Dec 18, 2017

I can reproduce, but only on Windows and only when running out of dev.

@sandy081
Copy link
Member

But, I think the ViewsViewlet uses extensions ready promise.. but it is not a blocking one though

@bpasero
Copy link
Member

bpasero commented Dec 18, 2017

@sandy081 it looks like the call to this.extensionManagementService.getInstalled is deadlocking:

image

@alexandrudima could this be a regression from your changes to cache the contents?

Btw this is not reproducible all the time, when I break before this call and then jump over it does not reproduce. So maybe something that spawns in the back has a chance to then come up because of debugging.

@sandy081
Copy link
Member

@bpasero 👍

@alexdima
Copy link
Member

alexdima commented Dec 19, 2017

@bpasero I don't believe so. The caching I implemented is not in the IExtensionManagementService (service managing extensions). I implemented caching in IExtensionService (service running extensions). Moreover, caching code is not executing when running from dev.

@alexdima alexdima removed their assignment Dec 19, 2017
@sandy081
Copy link
Member

Right. Getting installed extensions from extension management service is not using any caching. It just reads folders from the disk.

I will try to reproduce it in Windows and investigate.

@bpasero
Copy link
Member

bpasero commented Dec 19, 2017

@alexandrudima @joaomoreno this is a regression from b712555

The extension viewlet create method needs the shared process and probably at that time the shared process is not ready, but I am not sure why that would not eventually resolve itself for good.

@alexdima
Copy link
Member

Thank you @bpasero for tracking it down.

@joaomoreno Help! This timeout is causing so much grief! And I'm not sure it is 100% working. I think I've seen the process start after 3s, not after 5s.

@alexdima
Copy link
Member

alexdima commented Dec 19, 2017

Ok. I am reverting the timeout.

@bpasero @joaomoreno Do you think this should go on the stable channel too ?

@alexdima
Copy link
Member

Reverted via 4e3205f

@alexdima
Copy link
Member

Opened #40505 to track that we delay the start-up of the shared process.

@bpasero
Copy link
Member

bpasero commented Dec 19, 2017

@alexandrudima thanks. I thought about stable but actually this will never be executed in stable because only when running out of sources we actually restore the last used viewlet. For stable and insiders when you start fresh we always open the explorer viewlet. The only time we actually open the extension viewlet is when you reload the window, but then chances are high that the shared process has started already. I think it is unlikely to hit this unless maybe you manage to start Code, open extensions viewlet and reload the window, all under 3-5 seconds.

@vscodebot vscodebot bot locked and limited conversation to collaborators Feb 2, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues important Issue identified as high-priority verified Verification succeeded
Projects
None yet
Development

No branches or pull requests

5 participants