The Perforce plugin's ConsoleAnnotator relies on finding matching "(p4):cmd:" and "(p4):stop:" strings in the log in order to collapse Perforce commands in the log. We're seeing the "(p4):stop:" log for a 'p4 sync' call appear only after the Jenkinsfile has already moved on to running other commands. This causes the p4 plugin to collapse logs from other processes, making the console log seem as if it is missing output at first.
Here's a portion of the logs for a project that is checked out from Perforce, you can see that the 'p4 sync' command's :stop: log does not appear:
P4 Task: reverting all pending and shelved revisions.
(p4):cmd:... p4 revert /Users/jenkins/workspace/placeholder/...
/Users/jenkins/workspace/placeholder/... - file(s) not opened on this client.
... rm [abandoned files]
P4 Task: cleaning workspace to match have list.
(p4):cmd:... p4 reconcile -f -w /Users/jenkins/workspace/placeholder/...
duration: 0m 59s
P4 Task: syncing files at change: 147721
(p4):cmd:... p4 sync -q /Users/jenkins/workspace/placeholder/...@147721
... totalFileSize 3834967981
... totalFileCount 63312
P4: saving built changes.
Found last change 147717 on syncID jenkins-NODE_NAME-placeholder-EXECUTOR_NUMBER
(p4):cmd:... p4 login -s
p4 login -s
User jenkins ticket expires in 10 hours 0 minutes.
The last (p4):stop: eventually appears in the middle of other commands and console logs from there on out appear normally.