Doctor…I think we lost him… (aka TFS Warehouse breakdown)

Two weeks ago, here’s what I discovered when building a "remaining work" report.
Ok, you can say we don’t use these things a lot (it’ll change in the future, I can assure you) because it took time for us to notice.

But still, the issue is annoying, and I had to fix it!

Here is what I got from the Log:

TF53010: An unexpected condition has occurred in a Team Foundation component.
The information contained here should be made available to your site administrative staff.
Technical Information (for the administrative staff):Date (UTC): 3/19/2007 11:21:25 AM
Machine: PTFOUNDATION01Application Domain: /LM/W3SVC/3/Root/Warehouse-4-128187766414349430
Assembly: Microsoft.TeamFoundation.Warehouse, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727Process Details:  Process Name: w3wp  Process Id: 3316  Thread Id: 2144  Account name: CEGEDIMtfsservice
Detailed Message: Microsoft.TeamFoundation.VersionControl.Adapter: An error occurred while processing changeset 2284, unexpected exception: Exception Message: Thread was being aborted. (type ThreadAbortException) Exception Stack Trace:    at Microsoft.TeamFoundation.VersionControl.Adapter.Hatteras.retrieveChanges(Changeset changesetInfo, Int32 changePositionInChangeSetToProcess)   at Microsoft.TeamFoundation.VersionControl.Adapter.VCAdapter.processChangesets()

Well, the changeset 2284 in question was causing trouble to the updating process because it was made of nearly 37000 files (we can say it’s big, ok…).
Then a timeout occurred before our server could analyze it, failing the whole process.

Thanks to Eric Le Loc’h from Microsoft France, I could fix it by doing the following things in IIS:

1. Create a new TFSWarehouse application pool.
  a. Disabling any recycling settings in the Recycling tab.
  b. Disabling timeout in the Performance tab.
  c. Set the TFSService account in the Identity tab.
2. Moving the Warehouse application to the new application pool, and voilà !

The warehouse spent few hours to make it up to date, and everything is back to normal now!