Hitting hang opening project against d15prerel.25916.01 #3982

Closed
alpaix opened this Issue Nov 21, 2016 · 0 comments

Comments

Projects
None yet
2 participants
@alpaix

alpaix commented Nov 21, 2016

As reported by @ToddGrun.

I’m hitting this during automation opening a solution. The hang appears related to nuget’s use of MEF (specifically, the VSSolutionManager constructor attempting to get to the UI thread while holding onto a MEF lock).

@alpaix alpaix added this to the 4.0 RC2 milestone Nov 21, 2016

@alpaix alpaix self-assigned this Nov 21, 2016

@rrelyea rrelyea added the Priority:0 label Nov 21, 2016

alpaix added a commit to alpaix/NuGet.Client that referenced this issue Nov 21, 2016

[WIP] Resolved a deadlock in VS
Resolves NuGet/Home#3982.

Made number of changes to prevent deadlock in VS:
- Moved initialization code accessing `DTE` onto the main UI thread.
- Replaced `ServiceLocator` calls with `IServiceProvider`.

@alpaix alpaix referenced this issue in NuGet/NuGet.Client Nov 21, 2016

Merged

[WIP] Resolved a deadlock in VS #1029

alpaix added a commit to alpaix/NuGet.Client that referenced this issue Nov 22, 2016

Resolved a deadlock in VS
Resolves NuGet/Home#3982.

Made number of changes to prevent deadlock in VS:
- Moved initialization code accessing `DTE` onto the main UI thread.
- Replaced `ServiceLocator` calls with `IServiceProvider`.

Re-factored MEF constructors

Moved all threading work out of MEF constructors into a separate
`InitializeAsync` method. Implementation of the new method contains solely
events configuration so that instantiated object is fully functional even
before `InitializeAsync` been called.

Initialization of core MEF imported objects are performed in
`RestoreManagerPackage` which is loaded on solution new/open.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment