]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
travis: wait for the container to fully boot up
authorFrantisek Sumsal <frantisek@sumsal.cz>
Mon, 23 Dec 2019 19:54:08 +0000 (20:54 +0100)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 31 Dec 2019 13:15:38 +0000 (13:15 +0000)
This avoids nasty race conditions between dnf/apt-get and unfinished
population of /tmp (among other things), as `docker exec` allows commands
to run before the system is fully booted (i.e. initializing/starting
state reported by `systemctl is-system-running`).

travis-ci/managers/debian.sh
travis-ci/managers/fedora.sh

index 95f34cf8fa4a59ba4a33321f179b4b61eed0afad..6a6923fbc86a138d7623220f19c8c1724d17dfe2 100755 (executable)
@@ -39,6 +39,10 @@ for phase in "${PHASES[@]}"; do
                         -w /build --privileged=true --name $CONT_NAME \
                         -dit --net=host debian-with-systemd/latest /bin/systemd
             $DOCKER_EXEC bash -c "echo deb-src http://deb.debian.org/debian $DEBIAN_RELEASE main >>/etc/apt/sources.list"
+            # Wait for the container to properly boot up, otherwise we were
+            # running following apt-get commands during the initializing/starting
+            # (early/late bootup) phase, which caused nasty race conditions
+            $DOCKER_EXEC bash -c 'systemctl is-system-running --wait || :'
             $DOCKER_EXEC apt-get -y update
             $DOCKER_EXEC apt-get -y build-dep systemd
             $DOCKER_EXEC apt-get -y install "${ADDITIONAL_DEPS[@]}"
index 6e81d14b334f1b66b652883cec588b2f5156d9ee..e07b4938dfd47a5eabcda2d3cf46f7f522b34d4d 100755 (executable)
@@ -44,8 +44,10 @@ for phase in "${PHASES[@]}"; do
             $DOCKER_RUN -v $REPO_ROOT:/build:rw \
                         -w /build --privileged=true --name $CONT_NAME \
                         -dit --net=host fedora:$FEDORA_RELEASE /sbin/init
-            # Beautiful workaround for Fedora's version of Docker
-            sleep 1
+            # Wait for the container to properly boot up, otherwise we were
+            # running following dnf commands during the initializing/starting
+            # (early/late bootup) phase, which caused nasty race conditions
+            $DOCKER_EXEC bash -c 'systemctl is-system-running --wait || :'
             $DOCKER_EXEC dnf makecache
             # Install necessary build/test requirements
             $DOCKER_EXEC dnf -y --exclude selinux-policy\* upgrade