microsoft / microsoft/VFSForGit
When VFS4G Mount process can't download sizes, it dies
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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