From: Christian Ehrhardt Date: Mon, 16 Dec 2019 07:20:59 +0000 (+0100) Subject: tools: do not loop in libvirt-guests test_connect X-Git-Tag: v6.0.0-rc1~290 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ea9e032dd31d8c106bbc813df868326687ed4ef;p=thirdparty%2Flibvirt.git tools: do not loop in libvirt-guests test_connect These days libvirt is pretty reliable and even remote connections (not the default for libvirt-guests anyway) either work or fail but are uncommon to be flaky. On the other hand users might have disabled the service and while we are After=libvirtd for ordering we are not Requiring it. Adding that or any harder dependency might break our ordering. But if people have disabled libvirt they will do a full retry loop until timeout. Lets drop the loop to be much faster if a remote is not reachable. Fixes: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1854653 This reverts commit 4e7fc8305a53676ba2362bfaa8ca05c4851b7e12 Author: Michal Prívozník Date: Fri Feb 21 12:46:08 2014 +0100 libvirt-guests: Wait for libvirtd to initialize The race described in that commit no longer exists using systemd as we now have socket activation. If not using systemd, then it is also safe if using the libvirtd --daemon flag, since the parent process won't return to the caller until the child is accepting connections. Reported-by: Doug Smythies Reviewed-by: Daniel P. Berrangé Signed-off-by: Christian Ehrhardt --- diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in index 4bc6e866f0..a881f6266e 100644 --- a/tools/libvirt-guests.sh.in +++ b/tools/libvirt-guests.sh.in @@ -37,8 +37,6 @@ SHUTDOWN_TIMEOUT=300 PARALLEL_SHUTDOWN=0 START_DELAY=0 BYPASS_CACHE=0 -CONNECT_RETRIES=10 -RETRIES_SLEEP=1 SYNC_TIME=0 test -f "$sysconfdir"/sysconfig/libvirt-guests && @@ -90,19 +88,12 @@ test_connect() { uri=$1 - i=${CONNECT_RETRIES} - while [ $i -gt 0 ]; do - run_virsh "$uri" connect 2>/dev/null - if [ $? -eq 0 ]; then - return 0; - fi - sleep ${RETRIES_SLEEP} - eval_gettext "Unable to connect to libvirt currently. Retrying .. \$i" - i=$(($i-1)) - done - eval_gettext "Can't connect to \$uri. Skipping." - echo - return 1 + if run_virsh "$uri" connect 2>/dev/null; then + return 0; + else + eval_gettext "Can't connect to \$uri. Skipping." + return 1 + fi } # list_guests URI PERSISTENT