Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion GVFS/GVFS.FunctionalTests/Categories.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ public static class MacTODO
// machines but not on the build agents
public const string FailsOnBuildAgent = "FailsOnBuildAgent";
public const string NeedsLockHolder = "NeedsDotCoreLockHolder";
public const string NeedsCachePoisonFix = "NeedsCachePoisonFix";
public const string M2 = "M2_StaticViewGitCommands";
public const string M3 = "M3_AllGitCommands";
public const string M4 = "M4_All";
Expand Down
1 change: 0 additions & 1 deletion GVFS/GVFS.FunctionalTests/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ public static void Main(string[] args)
{
excludeCategories.Add(Categories.MacTODO.NeedsLockHolder);
excludeCategories.Add(Categories.MacTODO.FailsOnBuildAgent);
excludeCategories.Add(Categories.MacTODO.NeedsCachePoisonFix);
excludeCategories.Add(Categories.MacTODO.M2);
excludeCategories.Add(Categories.MacTODO.M3);
excludeCategories.Add(Categories.MacTODO.M4);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ namespace GVFS.FunctionalTests.Tests.EnlistmentPerFixture
public class MultithreadedReadWriteTests : TestsWithEnlistmentPerFixture
{
[TestCase, Order(1)]
[Category(Categories.MacTODO.NeedsCachePoisonFix)]
public void CanReadVirtualFileInParallel()
{
// Note: This test MUST go first, or else it needs to ensure that it is reading a unique path compared to the
Expand All @@ -27,7 +26,7 @@ public void CanReadVirtualFileInParallel()

Exception readException = null;

Thread[] threads = new Thread[32];
Thread[] threads = new Thread[128];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we upping the number of threads here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally anecdotal - but I've just seen on my own machine that the higher number of threads makes any races more likely to get hit. And the more temporary/partial fixes I put in place in my other branch, the more threads I needed to reliably hit any remaining issues.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thanks.

for (int i = 0; i < threads.Length; ++i)
{
threads[i] = new Thread(() =>
Expand Down
4 changes: 0 additions & 4 deletions GVFS/GVFS.FunctionalTests/Tests/GitCommands/CheckoutTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ private enum NativeFileAccess : uint
}

[TestCase]
[Category(Categories.MacTODO.NeedsCachePoisonFix)]
public void ReadDeepFilesAfterCheckout()
{
// In commit 8df701986dea0a5e78b742d2eaf9348825b14d35 the CheckoutNewBranchFromStartingPointTest files were not present
Expand All @@ -104,7 +103,6 @@ public void ReadDeepFilesAfterCheckout()
}

[TestCase]
[Category(Categories.MacTODO.NeedsCachePoisonFix)]
public void CheckoutNewBranchFromStartingPointTest()
{
// In commit 8df701986dea0a5e78b742d2eaf9348825b14d35 the CheckoutNewBranchFromStartingPointTest files were not present
Expand All @@ -121,7 +119,6 @@ public void CheckoutNewBranchFromStartingPointTest()
}

[TestCase]
[Category(Categories.MacTODO.NeedsCachePoisonFix)]
public void CheckoutOrhpanBranchFromStartingPointTest()
{
// In commit 8df701986dea0a5e78b742d2eaf9348825b14d35 the CheckoutOrhpanBranchFromStartingPointTest files were not present
Expand Down Expand Up @@ -734,7 +731,6 @@ public void DeleteFolderAndChangeBranchToFolderWithDifferentCase()
}

[TestCase]
[Category(Categories.MacTODO.NeedsCachePoisonFix)]
public void SuccessfullyChecksOutDirectoryToFileToDirectory()
{
// This test switches between two branches and verifies specific transitions occured
Expand Down
7 changes: 6 additions & 1 deletion ProjFS.Mac/PrjFSKext/PrjFSKext/VirtualizationRoots.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ int16_t VirtualizationRoots_LookupVnode(vnode_t vnode, vfs_context_t context)
{
// TODO: check xattr contents


char path[PrjFSMaxPath] = "";
int pathLength = sizeof(path);
vn_getpath(vnode, path, &pathLength);
Expand Down Expand Up @@ -283,6 +282,12 @@ VirtualizationRootResult VirtualizationRoot_RegisterProviderForPath(PrjFSProvide
vnode_put(virtualizationRootVNode);
}

if (rootIndex >= 0)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we reset the auth cache TTL back to the default upon virtualization root unmount?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes we will certainly want to do that, but right now unmount doesn't call through to the kext at all so we're currently not doing any cleanup. I filed #284 to cover all of that.

{
VirtualizationRoot* root = &s_virtualizationRoots[rootIndex];
vfs_setauthcache_ttl(vnode_mount(root->rootVNode), 0);
}

vfs_context_rele(vfsContext);

return VirtualizationRootResult { err, rootIndex };
Expand Down