Search

VS2010SP1 Hang while loading Microsoft.VSDesigner assembly by Alois

Closed
as Duplicate Help for as Duplicate

1
0
Sign in
to vote
Type: Bug
ID: 699569
Opened: 11/7/2011 4:38:46 AM
Access Restriction: Public
Moderator Decision: Sent to Engineering Team for consideration
0
Workaround(s)
0
User(s) can reproduce this bug
From time to time VS2010 hangs. Most of the time shortly after I have loaded a project.
It seems that the main thread hangs while loading a managed assembly. From the Resource Monitor I do see that two threads wait for each other.
I have attached a minidump as well. The full dump would be 500MB big which I can also provide if there is interest.
Details (expand)

Visual Studio/Silverlight/Tooling version

Visual Studio 2010 SP1

Steps to reproduce

Load a solution and hover the mouse over source code elements. Sometimes it does hang. When it does happen it occurs quite frequently.

Product Language

English

Operating System

Windows 7

Operating System Language

English (US)

Actual results

Main UI Thread tries to load "Microsoft.VSDesigner, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a" dll.

00238fc8 778bf861 [HelperMethodFrame_PROTECTOBJ: 00238fc8] System.Reflection.RuntimeAssembly._nLoad(System.Reflection.AssemblyName, System.String, 00239070 611a3148 System.Reflection.RuntimeAssembly.nLoad(System.Reflection.AssemblyName,
...
System.Activator.CreateInstance(System.String, System.String)
...
Microsoft.VisualStudio.Editor.Implementation.ShimQuickInfoSource.TryGetQuickInfoFromFilter(Microsoft.VisualStudio.Language.Intellisense.IQuickInfoSession, Microsoft.VisualStudio.TextManager.Interop.TextSpan[], System.String ByRef)
00239c3c 5c9b246c
...
00239e20 5c5e5e4d Microsoft.VisualStudio.Language.Intellisense.Implementation.QuickInfoSession.Start()
00239e2c 5c5ddbd8 Microsoft.VisualStudio.Language.Intellisense.Implementation.DefaultQuickInfoController.OnTextView_MouseHover(System.Object, Microsoft.VisualStudio.Text.Editor.MouseHoverEventArgs)
00239e74 5c5d83ed Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.RaiseHoverEvents()
00239ed4 5c5d73dc Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.OnHoverTimer(System.Object, System.EventArgs)
00239ef0 66ca542d System.Windows.Threading.DispatcherTimer.FireTick(System.Object)
00239f00 66c8fe83 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)

...
0023a4a4 66c92b28 System.Windows.Threading.DispatcherOperation.Invoke()
0023a524 66c8e9d7 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
0023a574 66c900a6 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
0023a5c0 66c8ffd5 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
0023e138 03a0340d [HelperMethodFrame_PROTECTOBJ: 0023e138] System.Reflection.RuntimeAssembly._nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef, Boolean, Boolean, Boolean)
Microsoft.VisualStudio.Editor.Implementation.ShimQuickInfoSource.AugmentQuickInfoSession(Microsoft.VisualStudio.Language.Intellisense.IQuickInfoSession, System.Collections.Generic.IList`1<System.Object>, Microsoft.VisualStudio.Text.ITrackingSpan ByRef)
0023eec8 5c5e57c2 Microsoft.VisualStudio.Language.Intellisense.Implementation.QuickInfoSession.Recalculate()
0023ef90 5c5e5e4d Microsoft.VisualStudio.Language.Intellisense.Implementation.QuickInfoSession.Start()
...
0023efe4 5c5d83ed Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.RaiseHoverEvents()
0023f044 5c5d73dc Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.OnHoverTimer(System.Object, System.EventArgs)
0023f060 66ca542d System.Windows.Threading.DispatcherTimer.FireTick(System.Object)
...


The other thread
0:027> kv
ChildEBP RetAddr Args to Child
10e6f6b8 778d8de4 00000c2c 00000000 00000000 ntdll!ZwWaitForSingleObject+0x15 (FPO: [3,0,0])
10e6f71c 778d8cc8 00000000 00000000 57ab4488 ntdll!RtlpWaitOnCriticalSection+0x13e (FPO: [2,17,4])
10e6f744 579e9efb 57e94084 8657432f 00000000 ntdll!RtlEnterCriticalSection+0x150 (FPO: [1,3,4])
WARNING: Stack unwind information not available. Following frames may be wrong.
10e6f77c 579ea4fb 01e72478 865743e3 00000000 cslangsvc+0x79efb
10e6f7b0 57b28e35 8657438b 00000000 00000000 cslangsvc+0x7a4fb
10e6f7d8 76963677 01e72478 10e6f824 778d9f02 cslangsvc!DefinitionTree_BindFullName+0x94b0

Expected results

No hang
File Attachments
File Name Submitted By Submitted On File Size  
Feedback-699569.zip (restricted) 12/1/2011 -
Sign in to post a comment.
Posted by Alois on 2/4/2012 at 3:06 AM
Great that is good news.
Posted by Microsoft on 2/3/2012 at 11:39 PM
Thanks for reporting this issue! We've fixed this for the next release
Posted by Microsoft on 12/7/2011 at 11:36 PM
Thanks for your feedback.
We are routing this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.
Posted by Alois on 12/6/2011 at 10:57 PM
It seems that installing Microsoft SQL Server System CLR Types (x64) from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=16177 does fix the issue. Could it be that these things were advertised? Apart from the perf degradation I would expect that the deadlock should be resolved within VS when MSI does kick in.
Posted by Alois on 12/5/2011 at 9:56 PM
It seems that the issue is that Visual Studio tries to install an update to Microsoft SQL Server System CLR Types (x64) (I have never used SQL server but it seems that this forced installation causes VS to deadlock.
Here are the relevant parts of the MSI Log file:

=== Verbose logging started: 05.12.2011 15:57:51 Build type: SHIP UNICODE 5.00.7600.00 Calling process: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe ===
Command Line: REINSTALL=SysClrTypFeature REINSTALLMODE=pocmus CURRENTDIRECTORY=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE CLIENTUILEVEL=3 CLIENTPROCESSID=11280

MSI (s) (5C:38) [06:29:54:573]: SOURCEMGMT: Failed to resolve source
MSI (s) (5C:38) [06:29:54:573]: Product: Microsoft SQL Server System CLR Types (x64) -- Error 1706. An installation package for the product Microsoft SQL Server System CLR Types (x64) cannot be found. Try the installation again using a valid copy of the installation package 'SQLSysClrTypes_amd64_enu.msi'.

How can I force VS to not try to install stuff I do not need? The original call stacks were quite misleading but apart from solving this deadlock I do not want to screw my performance due to such unnecessary stuff happening inside Visual Studio.
Posted by Alois on 12/1/2011 at 4:59 AM
The provided dump is a true minidump. The full dump creatd with VS is about 800MB (thanks for WF Editor beeing such a memory hog).
In VS I do see this stack which looks quite different compared to the one I did see in Winddbg.

UI Thread
>    ntdll.dll!_ZwWaitForSingleObject@12() + 0x15 bytes    
    ntdll.dll!_ZwWaitForSingleObject@12() + 0x15 bytes    
    kernel32.dll!_WaitForSingleObjectExImplementation@12() + 0x43 bytes    
    msenv.dll!_VsCoCreateAggregatedManagedObject() + 0xe2 bytes    
    msenv.dll!_VsLoaderCoCreateInstanceUnknown() + 0x8e bytes    
    msenv.dll!CVsLocalRegistry4::CreateInstance() + 0x4a bytes    
    msenv.dll!CXMLMemberIndexService::GetCulture() + 0x17f5 bytes    
    msenv.dll!CXMLMemberIndexService::LocateAndOpenXMLFile() + 0x14 bytes    
    msenv.dll!CXMLMemberIndexService::CreateXMLMemberIndex() + 0x78 bytes    
    cslangsvc.dll!CMetaDataLoader::EnqueueMemberIndexRequest() + 0xe80cc bytes    
    cslangsvc.dll!CMetaDataTypeData::GetDocumentationComment() + 0x1b bytes    
    cslangsvc.dll!CSymbolDescription::CPartCollector::ConditionallyAddDocCommentParts<CTypeData>() + 0x32 bytes    
    cslangsvc.dll!CSymbolDescription::CTypeProviderHelper::TryExecute() + 0x278 bytes    
    cslangsvc.dll!CSymbolDescription::CNameProviderVisitor::Visit() + 0x56 bytes    
    cslangsvc.dll!CTypeProvider::Accept() + 0x13 bytes    
    cslangsvc.dll!CSymbolDescription::CNameProviderVisitor::TryExecute() + 0x2a bytes    
    cslangsvc.dll!CSymbolDescription::TryGetDescription() + 0x37 bytes    
    cslangsvc.dll!CSymbolDescription::TryAppendDescription() + 0x61 bytes    
    cslangsvc.dll!CSpanBinder::TryExecuteAndGetDescription() + 0x88 bytes    
    cslangsvc.dll!CQuickInfo::TryGetRawIntelliSenseQuickInfo() + 0x81 bytes    
    cslangsvc.dll!CQuickInfo::TryGetFullIntelliSenseQuickInfo() + 0x4d bytes    
    cslangsvc.dll!CQuickInfo::TryExecute() + 0x3e bytes    
    cslangsvc.dll!CEditFilter::GetDataTipText() + 0xdd bytes    
    cslangsvc.dll!CVsEditFilter::GetDataTipText() + 0x52 bytes    
    user32.dll!_InternalCallWinProc@20() + 0x23 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_DispatchMessageWorker@8() + 0xed bytes    
    user32.dll!_DispatchMessageW@4() + 0xf bytes    
    msi.dll!MsiUIMessageContext::RunInstall() + 0x21231 bytes    
    msi.dll!RunEngine() + 0xb3 bytes    
    msi.dll!ConfigureOrReinstallFeatureOrProduct() + 0xfa bytes    
    msi.dll!_MsiReinstallFeatureW@12() + 0x66 bytes    
    msi.dll!ProvideComponent() + 0x10957 bytes    
    msi.dll!ProvideComponentFromDescriptor() + 0x154 bytes    
    msi.dll!_MsiProvideAssemblyW@24() + 0x437 bytes    
    msenv.dll!_VsCoCreateAggregatedManagedObject() + 0xe2 bytes    
    msenv.dll!_VsLoaderCoCreateInstanceUnknown() + 0x8e bytes    
    msenv.dll!CVsLocalRegistry4::CreateInstance() + 0x4a bytes    
    msenv.dll!CXMLMemberIndexService::GetCulture() + 0x17f5 bytes    
    msenv.dll!CXMLMemberIndexService::LocateAndOpenXMLFile() + 0x14 bytes    
    msenv.dll!CXMLMemberIndexService::CreateXMLMemberIndex() + 0x78 bytes    
    cslangsvc.dll!CMetaDataLoader::EnqueueMemberIndexRequest() + 0xe80cc bytes    
    cslangsvc.dll!CMDMemberData::GetDocumentationComment() + 0x51 bytes    
    cslangsvc.dll!CSymbolDescription::CPartCollector::ConditionallyAddDocCommentParts<CMemberData>() + 0x2f bytes    
    cslangsvc.dll!CSymbolDescription::CMemberProviderHelper::TryExecute() + 0xdc bytes    
    cslangsvc.dll!CSymbolDescription::CNameProviderVisitor::Visit() + 0x53 bytes    
    cslangsvc.dll!CAbstractNameProviderBoolDefaultVisitor::Visit() + 0x2b bytes    
    cslangsvc.dll!CAggregateMemberProvider::Accept() + 0x16 bytes    
    cslangsvc.dll!CSymbolDescription::CNameProviderVisitor::TryExecute() + 0x2a bytes    
    cslangsvc.dll!CSymbolDescription::TryGetDescription() + 0x37 bytes    
    cslangsvc.dll!CSymbolDescription::TryAppendDescription() + 0x61 bytes    
    cslangsvc.dll!CSpanBinder::TryExecuteAndGetDescription() + 0x88 bytes    
    cslangsvc.dll!CQuickInfo::TryGetRawIntelliSenseQuickInfo() + 0x81 bytes    
    cslangsvc.dll!CQuickInfo::TryGetFullIntelliSenseQuickInfo() + 0x4d bytes    
    cslangsvc.dll!CQuickInfo::TryExecute() + 0x3e bytes    
    cslangsvc.dll!CEditFilter::GetDataTipText() + 0xdd bytes    
    cslangsvc.dll!CVsEditFilter::GetDataTipText() + 0x52 bytes    
    [External Code]    
    user32.dll!_InternalCallWinProc@20() + 0x23 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_DispatchMessageWorker@8() + 0xed bytes    
    user32.dll!_DispatchMessageW@4() + 0xf bytes    
    msenv.dll!ProcessMessage() + 0x4d bytes    
    msenv.dll!CMsoCMHandler::EnvironmentMsgLoop() + 0x87 bytes    
    msenv.dll!CMsoCMHandler::FPushMessageLoop() + 0x79 bytes    
    msenv.dll!SCM::FPushMessageLoop() + 0x8c bytes    
    msenv.dll!SCM_MsoCompMgr::FPushMessageLoop() + 0x2a bytes    
    msenv.dll!CMsoComponent::PushMsgLoop() + 0x28 bytes    
    msenv.dll!VStudioMainLogged() + 0x22a bytes    
    msenv.dll!_VStudioMain() + 0x78 bytes    
    devenv.exe!util_CallVsMain() + 0xdb bytes    
    devenv.exe!CDevEnvAppId::Run() + 0x693 bytes    
    devenv.exe!_WinMain@16() + 0x9c bytes    
    devenv.exe!operator new[]() + 0xb31c bytes    
    kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes    
    ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes    
    ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes    

The other thread was
>    ntdll.dll!_ZwWaitForSingleObject@12() + 0x15 bytes    
    ntdll.dll!_ZwWaitForSingleObject@12() + 0x15 bytes    
    ntdll.dll!_ZwWaitForSingleObject@12() + 0x15 bytes    
    KernelBase.dll!_WaitForSingleObjectEx@12() + 0xcb bytes    
    ntdll.dll!_RtlEnterCriticalSection@4() + 0x16a78 bytes    
    cslangsvc.dll!CBackgroundQueue::ExecuteRequests() + 0x65 bytes    
    cslangsvc.dll!CBackgroundQueue::ThreadEntry() + 0x79 bytes    
    cslangsvc.dll!CBackgroundQueue::StaticThreadEntry() + 0x2b bytes    
    kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes    
    ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes    
    ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes    
Posted by Alois on 12/1/2011 at 4:56 AM
I have attached the minidump to my connect item since the upload did not work. Could have something to do with our quite tight corporate IE settings which are managed centrally. But it would help if firefox would be a supported browser by your upload portal so I have a chance to upload something.
Posted by Microsoft on 12/1/2011 at 4:01 AM
Hi Alois,

The dump file provided doesn't contain the full info.
Could you please help to capture a new dump file with the following steps?

1. Start Visual Studio.
2. Start another instance of VS.
3. In the second instance click Tools | Attach to Process...
4. In the list of processes locate devenv.exe.
5. Click Select... and explicitly choose 'Native' and 'Managed' code.
6. Click OK and OK to close Select dialog and Attach to Process dialog.
7. Go back to the first instance of VS and repro the hang.
8. Upon the hang, control should go to the second instance of VS. If not, please go back to the second instance of VS manually, and hit "Break All"
9. In the second instance click Debug | Save Mini Dump.

If you are running the VB profile you will not see the Save Dump As menu item. To add this menu item:
a. Select Tools -> Customize
b. Select the Commands tab
c. Select Debug from the Menu bar dropdown
d. Click Add Command...
e. Select Debug from the Categories list.
f. Find the Save Dump As entry in the Commands window.
g. Click OK (the Save Dump As... command is added to the top of the Debug menu).
h. Click Close

You can get detailed steps about how to get the dump file and call stack at http://blogs.msdn.com/debugger/archive/2009/12/30/what-is-a-dump-and-how-do-i-create-one.aspx

Please package your files into a zip file and name the zipped file Feedback-699569.zip.
You can upload the file to workspace:

https://sftasia.one.microsoft.com/choosetransfer.aspx?key=5d606cdd-4289-47af-bd1d-6ab77876dfe7
Password: @tlZ3+cda

It would be greatly appreciated if you could provide us with that information as quickly as possible.

Thanks again for your efforts and we look forward to hearing from you.
Posted by Microsoft on 11/27/2011 at 7:24 PM
Thank you for submitting feedback on Visual Studio 2010 and .NET Framework. Your issue has been routed to the appropriate VS development team for review. We will contact you if we require any additional information.
Posted by Alois on 11/25/2011 at 2:06 AM
Ok my Upload via your file server did work. You should have the full memory dump now.
Posted by Alois on 11/25/2011 at 1:26 AM
Currently upload does now work. I will try it again when it does work. I have zipped a full memory dump. It is now 184MB which should give enough detail.
Posted by Microsoft on 11/25/2011 at 12:49 AM
Hello,

Sorry for bothering. Is there any update?

It would be greatly appreciated if you could provide us with that information as quickly as possible.

Thanks you
Posted by MS-Moderator09 [Feedback Moderator] on 11/10/2011 at 12:29 AM
Thank you for reporting this issue.

But I cannot view the dump file during this site, it may be lost somehow.
Could you please help to upload it once again?

Please package your file into a zip file and name the zipped file Feedback-699569.zip.
You can upload the file to workspace:

https://sftasia.one.microsoft.com/choosetransfer.aspx?key=5d606cdd-4289-47af-bd1d-6ab77876dfe7
Password: @tlZ3+cda

It would be greatly appreciated if you could provide us this information as quickly as possible.

Thank you
Posted by MS-Moderator01 on 11/7/2011 at 5:43 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.