{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/project-system/issues/2119","repository_url":"https://api.github.com/repos/dotnet/project-system","labels_url":"https://api.github.com/repos/dotnet/project-system/issues/2119/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/project-system/issues/2119/comments","events_url":"https://api.github.com/repos/dotnet/project-system/issues/2119/events","html_url":"https://github.com/dotnet/project-system/issues/2119","id":226137184,"number":2119,"title":"Unusable IDE for many minutes due to UI contention during solution load.","user":{"login":"CyrusNajmabadi","id":4564579,"avatar_url":"https://avatars0.githubusercontent.com/u/4564579?v=3","gravatar_id":"","url":"https://api.github.com/users/CyrusNajmabadi","html_url":"https://github.com/CyrusNajmabadi","followers_url":"https://api.github.com/users/CyrusNajmabadi/followers","following_url":"https://api.github.com/users/CyrusNajmabadi/following{/other_user}","gists_url":"https://api.github.com/users/CyrusNajmabadi/gists{/gist_id}","starred_url":"https://api.github.com/users/CyrusNajmabadi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CyrusNajmabadi/subscriptions","organizations_url":"https://api.github.com/users/CyrusNajmabadi/orgs","repos_url":"https://api.github.com/users/CyrusNajmabadi/repos","events_url":"https://api.github.com/users/CyrusNajmabadi/events{/privacy}","received_events_url":"https://api.github.com/users/CyrusNajmabadi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-05-03T22:53:26Z","updated_at":"2017-05-03T22:55:41Z","closed_at":null,"body":"After Jared's change to make lots of Roslyn.sln use the new CPS projects, i've found VS to be unusable for many *minutes* while the solution loads.  Callstacks while this is happenign seem to be of the form:\r\n\r\n```\r\n>\t_ZwWaitForMultipleObjects@20()\tUnknown\r\n \tWaitForMultipleObjectsEx(nCount, lpHandles, bWaitAll, dwMilliseconds, bAlertable)\tC\r\n \tWaitForMultipleObjects(nCount, lpHandles, bWaitAll, dwMilliseconds)\tC\r\n \t6ee647c2()\tUnknown\r\n \t[Frames below may be incorrect and/or missing, native debugger attempting to walk managed call stack]\t\r\n \t6ee647c2()\tUnknown\r\n \t[Managed to Native Transition]\t\r\n \tMicrosoft.VisualStudio.Threading.NoMessagePumpSyncContext.Wait(waitHandles, waitAll, millisecondsTimeout)\tC#\r\n \tSystem.Threading.SynchronizationContext.InvokeWaitMethodHelper(syncContext, waitHandles, waitAll, millisecondsTimeout)\tC#\r\n \t[Native to Managed Transition]\t\r\n \t[Managed to Native Transition]\t\r\n \tSystem.Threading.Monitor.Wait(obj, millisecondsTimeout, exitContext)\tC#\r\n \tSystem.Threading.Monitor.Wait(obj, millisecondsTimeout)\tC#\r\n \tSystem.Threading.ManualResetEventSlim.Wait(millisecondsTimeout, cancellationToken)\tC#\r\n \tSystem.Threading.Tasks.Task.SpinThenBlockingWait(millisecondsTimeout, cancellationToken)\tC#\r\n \tSystem.Threading.Tasks.Task.InternalWait(millisecondsTimeout, cancellationToken)\tC#\r\n \tSystem.Threading.Tasks.Task.Wait(millisecondsTimeout, cancellationToken)\tC#\r\n \tSystem.Threading.Tasks.Task.Wait(timeout)\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTaskFactory.WaitSynchronouslyCore(task)\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTaskFactory.WaitSynchronously(task)\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTask<Microsoft.VisualStudio.ProjectSystem.VS.HResult>.CompleteOnCurrentThread()\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTaskFactory.Run<Microsoft.VisualStudio.ProjectSystem.VS.HResult>(asyncMethod, creationOptions)\tC#\r\n \tMicrosoft.VisualStudio.ProjectSystem.ProjectMultiThreadedService.ExecuteSynchronously<Microsoft.VisualStudio.ProjectSystem.VS.HResult>(asyncAction)\tC#\r\n \tMicrosoft.VisualStudio.ProjectSystem.VS.Implementation.Package.ProjectNode.HrInvoke.AnonymousMethod__0()\tC#\r\n \tMicrosoft.VisualStudio.ProjectSystem.VS.HResult.Invoke(action, vsShellServiceProvider, projectFaultHandlerService, project)\tC#\r\n \tMicrosoft.VisualStudio.ProjectSystem.VS.Implementation.Package.ProjectNode.HrInvoke(asyncAction, registerProjectFaultHandlerService)\tC#\r\n \tMicrosoft.VisualStudio.ProjectSystem.VS.Implementation.Package.ProjectConfig.OpenOutputGroup(projectOutputGroupName, ppIVsOutputGroupParam)\tC#\r\n \t[Native to Managed Transition]\t\r\n \tVspGetKeyOutputForGroup(pHierarchy, wszOGName, ppOutput2)\tC++\r\n \tCLangReference::GetOutputPathFromProject(strOutputPath)\tC++\r\n \tCLangReference::Refresh()\tC++\r\n \tCLanguageReferences::LoadAllProjectReferences()\tC++\r\n \tCLangBuildMgr::EnsureCompilerInitialized()\tC++\r\n \tCLangBuildMgr::OnAfterOpenProject(fSCCOpenedAsynchronous)\tC++\r\n \tCLangProject::OnAfterOpenProject(fAdded)\tC++\r\n \tCVsProject::OnAfterOpenProject(fAdded)\tC++\r\n \tCLangHierarchy::PrioritizedOnAfterOpenProject(pHierarchy, fAdded)\tC++\r\n \tCSolution::FirePrioritizedOnAfterOpenProject(solnEvents, pHierarchy, fProjAdded)\tC++\r\n \tCOnAfterOpenProjectAsyncNotificiationHelper::DoOneStep()\tC++\r\n \tCBaseSolutionAsyncNotificationHelper::DoOneStepAndContinue()\tC++\r\n \tstd::_Func_impl<<lambda_befb845544e5c1b93713e6daf7eadec5>,std::allocator<int>,long,IVsTask *,unsigned long,IVsTask * *,tagVARIANT *>::_Do_call(<_Args_0>, <_Args_1>, <_Args_2>, <_Args_3>)\tC++\r\n \tstd::_Func_class<long,IVsTask *,unsigned long,IVsTask * *,tagVARIANT *>::operator()(<_Args_0>, <_Args_1>, <_Args_2>, <_Args_3>)\tC++\r\n \t`anonymous namespace'::NativeVsTaskBody::DoWork(pTask, dwCount, pPredecessorTasks, pResult)\tC++\r\n \t[Managed to Native Transition]\t\r\n \tMicrosoft.VisualStudio.Services.VsTask.GetCallbackForMultipleParent.AnonymousMethod__0(_)\tC#\r\n \tMicrosoft.VisualStudio.Services.VsTask.GetCallback.AnonymousMethod__0()\tC#\r\n \tSystem.Threading.Tasks.Task<object>.InnerInvoke()\tC#\r\n \tSystem.Threading.Tasks.Task.Execute()\tC#\r\n \tSystem.Threading.Tasks.Task.ExecutionContextCallback(obj)\tC#\r\n \tSystem.Threading.ExecutionContext.RunInternal(executionContext, callback, state, preserveSyncCtx)\tC#\r\n \tSystem.Threading.ExecutionContext.Run(executionContext, callback, state, preserveSyncCtx)\tC#\r\n \tSystem.Threading.Tasks.Task.ExecuteWithThreadLocal(currentTaskSlot)\tC#\r\n \tSystem.Threading.Tasks.Task.ExecuteEntry(bPreventDoubleExecution)\tC#\r\n \tSystem.Threading.Tasks.TaskScheduler.TryExecuteTask(task)\tC#\r\n \tMicrosoft.VisualStudio.Services.TaskSchedulerService.VsUIThreadBlockableTaskScheduler.TryExecuteTaskAsync(task)\tC#\r\n \t__InternalCallWinProc@20()\tUnknown\r\n \t[Inline Frame] InternalCallWinProc()\tC\r\n \tUserCallWinProcCheckWow(pActCtx, pfn, hwnd, msg, wParam, lParam, fEnableLiteHooks, )\tC\r\n \tDispatchMessageWorker(pmsg, fAnsi)\tC\r\n \tDispatchMessageW(lpMsg)\tC\r\n \tMainMessageLoop::ProcessMessage(pstdcm, pIVsWindowManager, msg)\tC++\r\n \tCMsoCMHandler::EnvironmentMsgLoop()\tC++\r\n \tCMsoCMHandler::FPushMessageLoop(uReason)\tC++\r\n \tSCM::FPushMessageLoop(pscmi, uReason, pvLoopData)\tC++\r\n \tSCM_MsoCompMgr::FPushMessageLoop(dwComponentID, uReason, pvLoopData)\tC++\r\n \tCMsoComponent::PushMsgLoop(msgloop)\tC++\r\n \tVStudioMainLogged()\tC++\r\n \tVStudioMain(pMainParam)\tC++\r\n \tutil_CallVsMain(pMainParam, piRes)\tC++\r\n \tCDevEnvAppId::Run(wszCmdLine, nCmdShow)\tC++\r\n \tWinMain(hInstance, __formal, lpCmdLine, nCmdShow)\tC++\r\n \t[Inline Frame] invoke_main()\tC++\r\n \t__scrt_common_main_seh()\tC++\r\n \tBaseThreadInitThunk(RunProcessInit, StartAddress, Argument)\tC\r\n \t__RtlUserThreadStart(StartAddress, Argument)\tC\r\n \t_RtlUserThreadStart(StartAddress, Argument)\tC\r\n \t[Resuming Async Method]\t\r\n \tSystem.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.InvokeMoveNext(stateMachine)\tC#\r\n \tSystem.Threading.ExecutionContext.RunInternal(executionContext, callback, state, preserveSyncCtx)\tC#\r\n \tSystem.Threading.ExecutionContext.Run(executionContext, callback, state, preserveSyncCtx)\tC#\r\n \tSystem.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run()\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTaskFactory.SingleExecuteProtector.TryExecute()\tC#\r\n \tMicrosoft.VisualStudio.Threading.JoinableTaskFactory.SingleExecuteProtector..cctor.AnonymousMethod__20_0(state)\tC#\r\n \tSystem.Windows.Threading.ExceptionWrapper.InternalRealCall(callback, args, numArgs)\tC#\r\n \tSystem.Windows.Threading.ExceptionWrapper.TryCatchWhen(source, callback, args, numArgs, catchHandler)\tC#\r\n \tSystem.Windows.Threading.DispatcherOperation.InvokeImpl()\tC#\r\n \tSystem.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(state)\tC#\r\n \tMS.Internal.CulturePreservingExecutionContext.CallbackWrapper(obj)\tC#\r\n \tSystem.Threading.ExecutionContext.RunInternal(executionContext, callback, state, preserveSyncCtx)\tC#\r\n \tSystem.Threading.ExecutionContext.Run(executionContext, callback, state, preserveSyncCtx)\tC#\r\n \tSystem.Threading.ExecutionContext.Run(executionContext, callback, state)\tC#\r\n \tMS.Internal.CulturePreservingExecutionContext.Run(executionContext, callback, state)\tC#\r\n \tSystem.Windows.Threading.DispatcherOperation.Invoke()\tC#\r\n \tSystem.Windows.Threading.Dispatcher.ProcessQueue()\tC#\r\n \tSystem.Windows.Threading.Dispatcher.WndProcHook(hwnd, msg, wParam, lParam, handled)\tC#\r\n \tMS.Win32.HwndWrapper.WndProc(hwnd, msg, wParam, lParam, handled)\tC#\r\n \tMS.Win32.HwndSubclass.DispatcherCallbackOperation(o)\tC#\r\n \tSystem.Windows.Threading.ExceptionWrapper.InternalRealCall(callback, args, numArgs)\tC#\r\n \tSystem.Windows.Threading.ExceptionWrapper.TryCatchWhen(source, callback, args, numArgs, catchHandler)\tC#\r\n \tSystem.Windows.Threading.Dispatcher.LegacyInvokeImpl(priority, timeout, method, args, numArgs)\tC#\r\n \tMS.Win32.HwndSubclass.SubclassWndProc(hwnd, msg, wParam, lParam)\tC#\r\n \t[Native to Managed Transition]\t\r\n```\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/project-system/issues/comments/299058329","html_url":"https://github.com/dotnet/project-system/issues/2119#issuecomment-299058329","issue_url":"https://api.github.com/repos/dotnet/project-system/issues/2119","id":299058329,"user":{"login":"CyrusNajmabadi","id":4564579,"avatar_url":"https://avatars0.githubusercontent.com/u/4564579?v=3","gravatar_id":"","url":"https://api.github.com/users/CyrusNajmabadi","html_url":"https://github.com/CyrusNajmabadi","followers_url":"https://api.github.com/users/CyrusNajmabadi/followers","following_url":"https://api.github.com/users/CyrusNajmabadi/following{/other_user}","gists_url":"https://api.github.com/users/CyrusNajmabadi/gists{/gist_id}","starred_url":"https://api.github.com/users/CyrusNajmabadi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CyrusNajmabadi/subscriptions","organizations_url":"https://api.github.com/users/CyrusNajmabadi/orgs","repos_url":"https://api.github.com/users/CyrusNajmabadi/repos","events_url":"https://api.github.com/users/CyrusNajmabadi/events{/privacy}","received_events_url":"https://api.github.com/users/CyrusNajmabadi/received_events","type":"User","site_admin":false},"created_at":"2017-05-03T22:55:41Z","updated_at":"2017-05-03T22:55:41Z","body":"Dump is at \"\\\\mlangfs1\\public\\cyrusn\\Dumps\\NativeToManagedUIHanging.dmp\"\r\n\r\nTagging @srivatsn "}}
{"actor":{"display_login":"CyrusNajmabadi"}}