summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2015-09-10 17:09:18 +0200
committerHolger Levsen <holger@layer-acht.org>2015-09-10 17:09:18 +0200
commita4c42afb30d417603aa1dba99a5824e04d20ec51 (patch)
tree1fe993e169a43cea86cd0f63a0dac462604b3b90
parent88e9f421269d7a6fc64fe99bc7d192701e4404fa (diff)
downloadjenkins.debian.net-a4c42afb30d417603aa1dba99a5824e04d20ec51.tar.xz
chroot-installation: retry once, if debootstrap fails to download packages
-rwxr-xr-xbin/chroot-run.sh23
1 files changed, 17 insertions, 6 deletions
diff --git a/bin/chroot-run.sh b/bin/chroot-run.sh
index 7ce2ad28..dfdf75c8 100755
--- a/bin/chroot-run.sh
+++ b/bin/chroot-run.sh
@@ -53,12 +53,23 @@ bootstrap() {
mkdir -p "$CHROOT_TARGET/etc/dpkg/dpkg.cfg.d"
echo force-unsafe-io > "$CHROOT_TARGET/etc/dpkg/dpkg.cfg.d/02dpkg-unsafe-io"
- echo "Bootstraping $DISTRO into $CHROOT_TARGET now."
- if ! sudo debootstrap $BOOTSTRAP_OPTIONS $DISTRO $CHROOT_TARGET $MIRROR; then
- SLEEPTIME=1800
- echo "debootstrap failed, slowing down, sleeping $SLEEPTIME now..."
- sleep $SLEEPTIME
- exit 1
+ local TMPLOG=$(mktemp -p $CHROOT_BASE/ chroot-run-$DISTRO.XXXXXXXXX)
+ echo "$(date -u ) - bootstraping $DISTRO into $CHROOT_TARGET now."
+ set +e
+ sudo debootstrap BOOTSTRAP_OPTIONS $DISTRO $CHROOT_TARGET $MIRROR | tee $TMPLOG
+ local RESULT=$(egrep "E: Couldn't download packages" $TMPLOG)
+ rm $TMPLOG
+ set -e
+ if [ ! -z "$RESULT" ] ; then
+ echo "$(date -u) - initial debootstrap failed, sleeping 5min before retrying..."
+ sudo rm -rf --one-file-system $CHROOT_TARGET
+ sleep 5m
+ if ! sudo debootstrap BOOTSTRAP_OPTIONS $DISTRO $CHROOT_TARGET $MIRROR ; then
+ SLEEPTIME="30m"
+ echo "$(date -u ) - debootstrap failed, slowing down, sleeping $SLEEPTIME now..."
+ sleep $SLEEPTIME
+ exit 1
+ fi
fi
cat > $CHROOT_TARGET/tmp/chroot-prepare <<-EOF