phase1: reduce verbosity of rsync
authorThibaut VARÈNE <hacks@slashdirt.org>
Wed, 20 Jun 2018 18:37:59 +0000 (20:37 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 26 Jun 2018 20:08:22 +0000 (22:08 +0200)
commite55b76fd2f8188b34a85157fb119722dcee97117
treef58d2df9de43b74896e563c6c7b46ae6f2df094e
parent62a01a12129999d7e201786d9392af010f43aaf9
phase1: reduce verbosity of rsync

The purpose of this patch is to reduce uplink bandwidth contention when
rsync uploads are running.

This patch:
- replaces '-v' and '--progress' by '--info=name' in rsync's parameter
  list (assuming it's necessary to output a list of updated files)
- introduces a wrapper script 'rsync.sh' which checks for the presence
  and executability of 'pv' and pipes the output of rsync through
  'pv -t -i 60 -f' if possible, and falls back to plain rsync otherwise.

'--info=name' prints one line to stdout for each file that is updated on
the remote side.
'pv -t -i 60 -f' prints a 1mn-resolution timer to stderr, with the goal
of preventing the current buildbot step to timeout due to lack of process
output.

It's worth noting that '--progress' did not prevent some timeouts (most
notably on the 'sourceupload' step) since --progress only emits output
for files that are updated on the remote side.

Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
phase1/master.cfg
phase1/rsync.sh [new file with mode: 0755]