Perforce manages which changes/files you have by storing the information on the server. Once you have downloaded the change A with one client it marks that change as being downloaded. If you then use that same client on another machine the Perforce Server will assume you already have change A and not download it.
This means that using perforce on multiple build agents won't pick up the changes when it syncs. So it could be building incorrect code.
Because of this you have a few options.
- Restrict your plan to use a single machine and (if using multiple agents on the one machine, also set the client root yourself).
- Make Bamboo force a clean build every time it builds (okay for smaller projects but a pain for larger ones)
- Use alternate roots This would allow you to restrict your plan to 3 machines with 3 different alternate roots (a slightly better alternative than #1). A word of warning though, Bamboo will go through the roots in order till one exists so if you want Bamboo to build in the third root the first two must not exist on that machine.