Home Dashboard Directory Help
Search

C# TFS solution containing 150+ projects loads utterly slowly by tocsa


Status: 

Active


1
0
Sign in
to vote
Type: Bug
ID: 785625
Opened: 4/25/2013 3:07:54 PM
Access Restriction: Public
0
Workaround(s)
view
1
User(s) can reproduce this bug

Description

So there's this solution containing 162 projects, it's one product. It's in TFS.
VS 2012 Update 2 now, but I experienced it with bare VS 2012 and update 1 too. The TFS server is 2102 too. I installed TFS PowerTools from NuGet and Productivity PowerTools too.

What happens is that usually it takes 5+ minutes to load this solution. The Visual STudio becomes almost unresponsive, only a progress window is visible, Title: "Microsoft Visual Studio", "Loading solution projects..." "Loading project 21 of 162: ...". And it takes 10-60 seconds to process a project.

During that behavior one CPU is occupied. If I look at the threads of Visual Studio, I see more dozens of threads with "clr.dll!DllGetClassObjectInternal+0x5500d". Since there are 162 projects, I guess maybe each of those thread belongs to a project? If I look at the call stack of such a thread I see:
"wow64cpu.dll!TurboDispatchJumpAddressEnd+0x6c0
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x4a8
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x429
ntdll.dll!RtlIsDosDeviceName_U+0x24c87
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForSingleObject+0x15
kernel32.dll!WaitForSingleObjectEx+0x43
clr.dll!DllGetClassObjectInternal+0x2a17a
clr.dll!DllGetClassObjectInternal+0x2aab6
clr.dll!DllGetClassObjectInternal+0x2ab58
clr.dll!DllGetClassObjectInternal+0x55056
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36"

Can this be some multi-threading/locking issue which comes up only with large number of projects?
Extremely rarely I experience the desired behavior: the solution opens up within seconds, and the rest of the loading process happens asynchronously, Visual Studio is responsive. I can see a very thin dark blue progress indicator line below the title of the Solution Explorer, and I can see the project icons changing as they load. The load procedure is still much faster when Visual Studio produces the locking issue.

Deleting the suo file doesn't help.
Details
Sign in to post a comment.
Posted by tocsa on 5/8/2013 at 9:19 AM
Sometimes I kill Visual Studio while it's in the middle of this 10 minutes load process. Last time after the kill when I waited the solution load I got an error message: "One or more projects in the solution were not loaded correctly. Please see the Output Window for details" (I'll attach this as VSFTErrorMessage.jpg, although this may nothing have to do with the original error, maybe it's just because I killed VS and it can detect that a load procedure wasn't finished?). The output window says "An error was encountered while opening associated documents the last time this solution was loaded. Document load is being skipped during this solution load in order to avoid that error.". Unfortunately I don't see any more details, which document or what.
Posted by tocsa on 5/6/2013 at 10:04 AM
Ok, I attached the 60MB compressed (2.6GB uncompressed ETL). I couldn't find the other 3 files in the temp which supposed to be attached by the Feedback Tool.
Posted by tocsa on 5/6/2013 at 9:44 AM
So the error is that supposedly I do not own this feedback item, so I cannot attach. Can we fix that?
Posted by tocsa on 5/6/2013 at 9:33 AM
Ok, with one monitor, one VS2012 running, no luck again. What I gonna do is I'll just run the Feedback Tool without performance reporting, and at the point when the solution is already loaded (so you'll see the state while the solution is already loaded).
Posted by tocsa on 5/6/2013 at 9:06 AM
"Notes about attachments:

·        The total size of all attachments in a bug report cannot exceed 2 GB, and every uncompressed attachment must be smaller than 512 MB. We recommend that you assemble all of your attachments, compress them together into a .zip file, and then attach the .zip file."
:P

7zip compressed the 2.7GB down to 70MB, but then it doesn't count?
Posted by tocsa on 5/6/2013 at 9:00 AM
I see limitations according to attachment size, namely it shouldn't exceed 2GB. Is that uncompressed size? Because then the 2.7GB ETL is out of luck. I'll try to record it again, having only one VS2012 running, and I revert back to only one monitor.
Posted by tocsa on 5/6/2013 at 8:55 AM
So I'm tried to send a Performance report, but in the end the Feedback Tool gave me an error. A message popped up in the tooltip of the system tray icon of the Feedback Tool saying that it couldn't attach one of the files because I "don't own it". The message went away. I saw that there would be 4 files attached to the report, the last one would be the ETL. I dig into my temp folder and found out that the uncompressed ETL file size is 2.7GB. The attached would be 170MB. I guess it wasn't successful. My recording was basically just starting to open the solution, and then wait until the load finishes, which takes like 10 minutes. Nothing else. Now I'm compressing the ETL manually with 7z.
Posted by tocsa on 5/6/2013 at 8:05 AM
I'll try to give the feedback with the Feedback Tool.
Posted by Microsoft on 5/6/2013 at 4:10 AM
Hi, given that we have not heard back from you in 7 days. We will go ahead and close this Connect Issue. If you get a chance to review and provide the information requested earlier, you can go ahead and reactivate this issue.
Posted by Microsoft on 4/30/2013 at 2:10 AM
I am currently standing by for an update from you and would like to know how things are going on your end. If you could get back to me at your earliest convenience with information I request, we will be able to make headway towards a resolution. I look forward to hearing from you.
Posted by Microsoft on 4/25/2013 at 11:54 PM
Thanks for your feedback. In order to efficiently investigate and reproduce this issue, we are requesting additional information outlined below.

Could you please give us a dump file so that we can conduct further research?

Visual Studio now has an extension called Microsoft Visual Studio 2012 Feedback Tool, available on the VS gallery(http://visualstudiogallery.msdn.microsoft.com/f8a5aac8-0418-4f88-9d34-bdbe2c4cfe72).

The extension allows you to
1. upload files,
2. collect trace and dump files
3. collect steps while you're repro'ing the issue, as well as
4. SQM logs about VS extensions installed
5. System details (in DxDiag output)

For more information, please refer to https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=26698

Please submit this information to us within 4 business days. We look forward to hearing from you with this information.

Microsoft Visual Studio Connect Support Team
Posted by Microsoft on 4/25/2013 at 5:51 PM
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.
File Name Submitted By Submitted On File Size  
VSFTErrorMessage.jpg 5/6/2013 16 KB
VSFTErrorMessage.jpg 5/8/2013 16 KB
VSFTErrorMessage2.jpg 5/8/2013 14 KB