Noticed when doing work for
The Solr backup commands call BackupRepository.createDirectory at various times, while also checking that the same directory exists (via pathExists) at different times. The issue here is that during the distributed Backup commands, (sent to different nodes for each shard), one node might be at the part of the backup where it is calling createDirectory when another node is calling pathExists for the same directory.
When following the BackupRepository API Spec correctly, this should not be an issue because createDirectory should be a no-op when the directory already exists. However GCSRepository does not make this check before creating the directory. This should be an easy fix.