Sorry, can you clarify what you mean by switching streams? Is it just when an agent has multiple workspaces synced pointing at different P4 streams, and switches which one is actively being used based on the needs of the current job? Or if a single Horde stream config defines a workspace, but then changes the definition of that workspace to point at a different P4 stream without changing the workspace identifier? Or are multiple Horde stream configs each defining workspaces using the same identifier? Something else I haven’t thought of?
For the most part, we are working in a single Horde stream, and our workers typically have two workspaces assigned: the main P4 workspace, and a setup workspace that is the same depot but a much more restricted view (we’re using this to run automation tool so the initial Horde job Setup Build step can run without needing an entire workspace). We do have a few uncommonly used secondary Horde streams, but are using unique workspaces separate from the main ones, and don’t run jobs very often.
Here’s a sync lease log, this is on an agent running our main incremental build. Aside from some UBA compute work, the previous job on the same worker was the same incremental build job, with about 240 CLs in between the two runs.
Syncing to //depot/main at CL ######
Reverting changes...
Reverting changes... (0.1s)
Updating have table...
Finding files to clean...
Hang detected (Perforce connection (2)): sync -k -q //Horde+BUILD-WORKER31+depot-main/...@###### (60s)
Updating have table... (66.2s)
Finding files to clean... (193.3s)
Fetching metadata...
Hang detected (Perforce connection (2)): fstat -Ol -Op -Os -Rh -T code,depotFile,clientFile,headType,haveRev,fileSize,digest //Horde+BUILD-WORKER31+depot-main/...@###### (60s)
Fetching metadata... (112.9s)
Saving metadata to D:\Horde\depot-main\Contents.dat...
Saving metadata to D:\Horde\depot-main\Contents.dat... (4.9s)
Gathering files to remove...
Gathering files to remove... (23.2s)
Moving 10176 files to cache...
Moving 10176 files to cache... (16.9s)
Deleting 2298 directories...
Deleting 2298 directories... (2.0s)
Gathering files to add...
Gathering files to add... (50.5s)
Syncing 12634 files using 4 threads...
Syncing 12634 files using 4 threads... 14.5% (952.6mb/6,556.5mb)
Syncing 12634 files using 4 threads... 30.4% (1,991.2mb/6,556.5mb)
Syncing 12634 files using 4 threads... 67.8% (4,446.2mb/6,556.5mb)
Syncing 12634 files using 4 threads... 87.0% (5,706.2mb/6,556.5mb)
Syncing 12634 files using 4 threads... 99.0% (6,490.6mb/6,556.5mb)
Syncing 12634 files using 4 threads... 100.0% (6,556.5mb/6,556.5mb)
Completed in 452.1s
I don’t see the PerforceMaterializer in our 5.6.1 depot, what CL did it first get added to the Epic P4 depot? I’ll have to try bringing that in to our own depot to test it out, it does sound like exactly what I was asking for.