1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-20 20:09:11 +00:00

* Support the -norsync argument to only remove the existing build chroots

on a disconnected client, without running the time-consuming rsyncs.
  This is useful when a build is interrupted and needs to be restarted.

* After we have cleaned up the machine, reset the queue counter by using
  pollmachine -queue.  This has a race condition if other builds are being
  dispatched to the machine (e.g. builds on another branch):

  getmachine can claim a directory and increment the counter, then the
  machine is polled and finds e.g. 0 chroots in use, and resets the
  counter to 0, then claim-chroot is run and the build dispatched, with
  the counter now off-by-one.  This could be fixed by running
  claim-chroot with the .lock held, but this turns out to be too
  time-consuming.  A two-level lock approach might also fix this
  efficiently.
This commit is contained in:
Kris Kennaway 2004-12-28 05:50:37 +00:00
parent 01e42e5b2d
commit 23bd58ef86
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=125320

View File

@ -5,7 +5,12 @@ pb=/var/portbuild
arch=$1
branch=$2
node=$3
shift
shift 3
norsync=0
if [ "$1" = "-norsync" ]; then
norsync=1
fi
. ${pb}/${arch}/portbuild.conf
@ -25,7 +30,7 @@ if [ ! -z "${sudo_cmd}" ]; then
ssh -n ${client_user}@${node} ${sudo_cmd} "chown -R ${client_user} /var/portbuild/"
fi
if [ "${disconnected}" = 1 ]; then
if [ "${disconnected}" = 1 -a "${norsync}" = 0 ]; then
rsync ${rsync_gzip} -r -l -p --delete ${pb}/scripts ${client_user}@${node}:${pb}/
rsync ${rsync_gzip} -r -l -p --delete ${pb}/${arch}/portbuild* ${client_user}@${node}:${pb}/${arch}
rsync ${rsync_gzip} -r -l -p --delete ${pb}/${arch}/${branch}/ports ${client_user}@${node}:${pb}/${arch}/${branch}
@ -34,4 +39,5 @@ if [ "${disconnected}" = 1 ]; then
rsync ${rsync_gzip} -r -l -p --delete ${pb}/${arch}/${branch}/tarballs/bindist* ${client_user}@${node}:${pb}/${arch}/${branch}/tarballs
fi
lockf ${pb}/${arch}/queue/.lock ${pb}/scripts/pollmachine ${arch} ${node} -queue
echo "setting up of $node ended at $(date)"