blog

TFS Preview - Issue: TF400898 The underlying connection was closed

Published on
3 minute read

When you try to do a “Get” from TFS Preview you receive a “underlying connection was closed” and often a TF400898.

TFS Preview - Issue: TF400898 The underlying connection was closed  

Figure: The underlying connection was closed

This may happen on one or more files with different files experiencing this problem for different users.

Applies To

Findings

There are a bunch of checks that you want to do in order to make sure that this is indeed a TFS problem and not a local one.

In all circumstances TFS thinks that the file is checked in but that I don’t yet have it locally.

TFS Preview - Issue: TF400898 The underlying connection was closed  

Figure: Tfs Preview Lost a file

I was far more concerned with the fact that TFS can lose a file than in the file that was lost but this is a big complex system and glitches will happen. Its how they are handled that is important.

TFS Preview - Issue: TF400898 The underlying connection was closed  

Figure: I can view history on the missing file

If you find something like this then you need to contact the product team through http://tfspreview.com  .

Conclusion

I escalated this to the Product Team and after a few questions and screenshots they investigated and identified a bug in VC subsystem which under certain circumstances can result in deleting files.  Here are the technical details:

A call to the Upload server call in Dev11 consists of three database calls. Version control is the orchestrator of the operation and it controls these three steps. Steps 1 and 3 are VC steps. Step 2 is owned by the file service.

  1. Pre-upload (prc_PreUploadFile) – checks to make sure the server item ($/…) for which the user is calling is eligible for upload (existence check, etc.)
  2. Upload – this phase is delegated to the file service. At the end of this call, the row in tbl_File is created and its OwnerId is set to 1.
  3. Post-upload (prc_PostUploadFile). The row for this item in tbl_PendingChange is modified to get the FileId for the row in tbl_File.

There is no overarching transaction for these three steps. If prc_DeleteUnusedContent runs between steps 2 and 3 above then it will garbage collect the file ID it just created because it appears the file ID is unrooted in VC.

I applied a temporary mitigation to your account through which you should be able to access the file.  Can you please re-try accessing the file and let me know if you still are able to repro the issue now?

We already ported a fix into RTM & will be working on deploying a hotfix to the service on Friday or Monday.
-Madhu Kavikondala

This had now been fixed not just for me, but across both the hosted service and for the TFS 2012 RTM TFS Preview - Issue: TF400898 The underlying connection was closed

Are you having problems with TFS Preview? Don’t sit and fizz… Check the  TFS Preview status   or raise a bug  .

problems-and-puzzles blog puzzles tf400898 tfs2012 vsteamservices

Connect with Martin Hinshelwood

If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.

Our Happy Clients​

We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.​

YearUp.org Logo
ProgramUtvikling Logo
Slicedbread Logo
Xceptor - Process and Data Automation Logo
Jack Links Logo
Higher Education Statistics Agency Logo
Workday Logo
Bistech Logo
Schlumberger Logo
Akaditi Logo
Ericson Logo
DFDS Logo
Big Data for Humans Logo
SuperControl Logo
Illumina Logo

NIT A/S

Deliotte Logo
Healthgrades Logo
New Hampshire Supreme Court Logo
Nottingham County Council Logo
Ghana Police Service Logo
Washington Department of Transport Logo
Royal Air Force Logo
Washington Department of Enterprise Services Logo
Ericson Logo
Hubtel Ghana Logo
YearUp.org Logo
ALS Life Sciences Logo
Microsoft Logo
Lockheed Martin Logo