From: Michal Privoznik Date: Thu, 10 Apr 2025 08:20:02 +0000 (+0200) Subject: virinhibitor: Suppress reporting an error when D-Bus is unavailable in virInhibitorAc... X-Git-Tag: v11.3.0-rc1~45 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4f502feebfcad5ed647a87d5b33228bf63aadbb0;p=thirdparty%2Flibvirt.git virinhibitor: Suppress reporting an error when D-Bus is unavailable in virInhibitorAcquire() At the beginning of virInhibitorAcquire() the system D-Bus connection is obtained by calling virGDBusGetSystemBus(). If there's no D-Bus available then an debug message is printed out and function returns early. Problem is, in case of no D-Bus an error message was reported by virGDBusGetSystemBus() and thus logs were polluted which may mislead users. Just check whether D-Bus is available first (by calling virGDBusHasSystemBus()). If it is then virGDBusGetSystemBus() should return a valid connection. Nevertheless, respect previous logic and don't propagate error to the caller, just return 0. Resolves: https://issues.redhat.com/browse/RHEL-79088 Signed-off-by: Michal Privoznik Reviewed-by: Jiri Denemark --- diff --git a/src/util/virinhibitor.c b/src/util/virinhibitor.c index a95021de5a..6796938936 100644 --- a/src/util/virinhibitor.c +++ b/src/util/virinhibitor.c @@ -70,11 +70,14 @@ virInhibitorAcquire(const char *what, VIR_DEBUG("what=%s who=%s why=%s mode=%s", NULLSTR(what), NULLSTR(who), NULLSTR(why), NULLSTR(mode)); - if (!(systemBus = virGDBusGetSystemBus())) { + if (!virGDBusHasSystemBus()) { VIR_DEBUG("system dbus not available, skipping system inhibitor"); return 0; } + if (!(systemBus = virGDBusGetSystemBus())) + return 0; + if (virSystemdHasLogind() < 0) { VIR_DEBUG("logind not available, skipping system inhibitor"); return 0;