microsoft / microsoft/VFSForGit

When VFS4G Mount process can't download sizes, it dies

Open
#1,505 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
6.1k
Forks
474
Avg merge
2d 4h
Merged PRs (30d)
8

Description

[2019-09-03 10:49:45.0889 -07:00] Error {"Area":"GitIndexProjection","Exception":"GVFS.Virtualization.Projection.SizesUnavailableException: Failed to download size for F42607E576DF84999180AC94C7B196C73A7F7B54\n   at GVFS.Virtualization.Projection.GitIndexProjection.FolderData.PopulateSizesFromRemote(ITracer tracer, GVFSGitObjects gitObjects, BlobSizesConnection blobSizesConnection, HashSet`1 missingShas, List`1 childrenMissingSizes, CancellationToken cancellationToken) in /Users/mobileci/jenkins/workspace/gvfs-build-git-vfs4git/GVFS/GVFS.Virtualization/Projection/GitIndexProjection.FolderData.cs:line 150\n   at GVFS.Virtualization.Projection.GitIndexProjection.FolderData.PopulateSizes(ITracer tracer, GVFSGitObjects gitObjects, BlobSizesConnection blobSizesConnection, Dictionary`2 availableSizes, CancellationToken cancellationToken) in /Users/mobileci/jenkins/workspace/gvfs-build-git-vfs4git/GVFS/GVFS.Virtualization/Projection/GitIndexProjection.FolderData.cs:line 67\n   at GVFS.Virtualization.Projection.GitIndexProjection.ReExpandFolder(BlobSizesConnection blobSizesConnection, String relativeFolderPath, HashSet`1 existingPlaceholders) in /Users/mobileci/jenkins/workspace/gvfs-build-git-vfs4git/GVFS/GVFS.Virtualization/Projection/GitIndexProjection.cs:line 1385\n   at GVFS.Virtualization.Projection.GitIndexProjection.UpdatePlaceholders() in /Users/mobileci/jenkins/workspace/gvfs-build-git-vfs4git/GVFS/GVFS.Virtualization/Projection/GitIndexProjection.cs:line 1184\n   at GVFS.Virtualization.Projection.GitIndexProjection.ParseIndexThreadMain() in /Users/mobileci/jenkins/workspace/gvfs-build-git-vfs4git/GVFS/GVFS.Virtualization/Projection/GitIndexProjection.cs:line 1037","ErrorMessage":"ParseIndexThreadMain caught unhandled exception, exiting process"}

Currently, failure to download sizes results in the mount process crashing and then failing to start (for the same reason).

Perhaps we can find a more graceful solution? Perhaps notifying the user of the problem via a notification and exiting?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with GVFS/GVFS.Virtualization/Projection/GitIndexProjection.FolderData.cs, especially PopulateSizesFromRemote and PopulateSizes, then follow the callers in GitIndexProjection.cs. Reproduce the missing-size failure and determine how the mount process should handle it without crashing or repeatedly failing to start; done means the failure is handled gracefully and the user is informed.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
devtools, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.