microsoft / p4vfs

Microsoft Virtual File System for Perforce
MIT License
272 stars 13 forks source link

Sync using an arguments file fails frequently. [p4vfs -x {file} sync] #42

Open pmintusEA opened 4 months ago

pmintusEA commented 4 months ago

We very heavily rely on argument files when performing a syncing using p4.exe. It allows us to filter out unnecessary files. When we ported over to p4vfs.exe we continued to use an argument file. However I have recently noticed that they don't always succeed.

The more files to sync, the greater the chance of failure. I cannot tell if there is a safe minimum.

This seems to only occur when using an arguments file. I have not been able to reproduce the issue without an arguments file. sync and populate with an arguments file both have the same issue.

At around 25,000 files I see about a 1/6 success rate.

When it fails I have seen the following:

SocketModelClient.SendCommand exit with exception: One or more errors occurred.

I have attached a powershell script that I have been using to verify this. To use this script, you will have to have your p4 environment set up so that executing p4vfs sync would just start a sync.

# Tests p4vfs populate using an argument file to perform the sync
# .\p4vfs-test.ps1 -max 10000 will limit the sync to 10000 files
# .\p4vfs-test.ps1 -nofile will not use an argument file
# .\p4vfs-test.ps1 -sync will use sync instead of populate

p4vfs-test.ps1.txt

jessk-msft commented 4 months ago

Thank you for the details. I'm sure that we haven't stress tested the argument file support enough. Seems like a fairly consistent problem, and we can probably start by confirming it with a new unit test. Can you provide a bit more info:

Regards, -Jess

pmintusEA commented 3 months ago

Hi,

I tested p4vfs sync -t and it seems to be working correctly.

Thanks!