diff --git a/vagrant/vagrant-up.sh b/vagrant/vagrant-up.sh index 5b88144c0acf4..6a4ef956420eb 100755 --- a/vagrant/vagrant-up.sh +++ b/vagrant/vagrant-up.sh @@ -226,31 +226,33 @@ function bring_up_aws { if [[ ! -z "$worker_machines" ]]; then echo "Bringing up test worker machines in parallel" - # Currently it seems that the AWS provider will always run - # rsync as part of vagrant up. However, - # https://github.com/mitchellh/vagrant/issues/7531 means - # it is not safe to do so. Since the bug doesn't seem to - # cause any direct errors, just missing data on some - # nodes, follow up with serial rsyncing to ensure we're in - # a clean state. Use custom TMPDIR values to ensure we're - # isolated from any other instances of this script that - # are running/ran recently and may cause different - # instances to sync to the wrong nodes + # Try to isolate this job in its own /tmp space. See note + # below about vagrant issue local vagrant_rsync_temp_dir=$(mktemp -d); TMPDIR=$vagrant_rsync_temp_dir vagrant_batch_command "vagrant up $debug --provider=aws" "$worker_machines" "$max_parallel" rm -rf $vagrant_rsync_temp_dir vagrant hostmanager - for worker in $worker_machines; do - local vagrant_rsync_temp_dir=$(mktemp -d); - TMPDIR=$vagrant_rsync_temp_dir vagrant rsync $worker; - rm -rf $vagrant_rsync_temp_dir - done fi else vagrant up --provider=aws --no-parallel --no-provision $debug vagrant hostmanager vagrant provision fi + + # Currently it seems that the AWS provider will always run rsync + # as part of vagrant up. However, + # https://github.com/mitchellh/vagrant/issues/7531 means it is not + # safe to do so. Since the bug doesn't seem to cause any direct + # errors, just missing data on some nodes, follow up with serial + # rsyncing to ensure we're in a clean state. Use custom TMPDIR + # values to ensure we're isolated from any other instances of this + # script that are running/ran recently and may cause different + # instances to sync to the wrong nodes + for worker in $worker_machines; do + local vagrant_rsync_temp_dir=$(mktemp -d); + TMPDIR=$vagrant_rsync_temp_dir vagrant rsync $worker; + rm -rf $vagrant_rsync_temp_dir + done } function main {