Hi Carl, I can provide some more information on this now which might help?
Checking Mongo, I saw that our 5.5 dev server had 1.3k items in CommitsV3 vs 49.5k on our prod server.
Also that the MinChange for the dev server was CL 1008487, which is from the day the server was started. Max change was up to date at the latest CL (1010330) Is this the expected behavior or should some previous changes be cached too?
The server seems to run the PerforceServiceCache.UpdateClusterInternalAsync call for about 18 hours or so and then stop. Then later on (not sure when) it will start again and repeat.
If we queue a build between the min and max change, the queuing is instant.
If we queue a build before the MinChange, and the UpdateClusterInternalAsync is still running, we see the queuing take ~14 mins as it does multiple p4 changes calls, each taking ~20secs.
If we queue a build before the MinChange, and UpdateClusterInternalAsync is finished, we get a broken pipe error, interestingly, similar to this but not always from this function:
Failed: write: Broken pipe: Broken pipe (Generic=Fault) at EpicGames.Perforce.PerforceResponse.EnsureSuccess() in /app/Source/Programs/Shared/EpicGames.Perforce/PerforceResponse.cs:line 75 at HordeServer.Perforce.PerforceService.CheckShelfAsync(StreamConfig streamConfig, Int32 changeNumber, CancellationToken cancellationToken) in /app/Source/Programs/Horde/Plugins/Build/HordeServer.Build/Perforce/PerforceService.cs:line 822 at HordeServer.Jobs.JobsController.CreateJobAsync(CreateJobRequest create, CancellationToken cancellationToken) in /app/Source/Programs/Horde/Plugins/Build/HordeServer.Build/Jobs/JobsController.cs:line 138 at lambda_method878(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)Tried to track down the p4 logs for this call from our p4 server but couldn’t actually find the call taking place in order to track it down, so perhaps it didn’t get that far.
Hopefully this helps narrow down the problem though?