From: Michal Privoznik <mpriv...@redhat.com> 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 <mpriv...@redhat.com> --- src/util/virinhibitor.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; -- 2.49.0