cockpit-project / cockpit-machines

Cockpit UI for virtual machines
GNU Lesser General Public License v2.1
285 stars 74 forks source link

"Virtualization service (libvirt) is not active" tells me about wrong service #1462

Open stefwalter opened 7 months ago

stefwalter commented 7 months ago

On Fedora 40 (and perhaps elsewhere) the Virtualization Service that the "Virtual machines" tab indicates that:

image

However, the service is called virtqemud

Failed to get libvirt version from the dbus API: 
Object { problem: null, name: "org.libvirt.Error", message: "Failed to connect socket to '/var/run/libvirt/virtqemud-sock': No such file or directory", toString: toString() }

and

$ sudo systemctl status libvirtd
Unit libvirtd.service could not be found.
$ sudo systemctl status virtqemud
● virtqemud.service - libvirt QEMU daemon
...

Version:

cockpit-machines-308-1.fc40.noarch
martinpitt commented 7 months ago

Indeed, this is currently hardcoded in the string. Our integration tests have

    def getLibvirtServiceName(self):
        m = self.machine
        return "libvirtd" if hasMonolithicDaemon(m.image) else "virtqemud"

but the runtime code doesn't.

This is a bit awkward to determine efficiently, but if we are on that page there is nothing else to do, so that's fine.

Thanks for your report @stefwalter , nice to see you back!

Wotisrv commented 6 months ago

The issue also occurs under Fedora 39 and earlier. The issue only comes up when restarting. It takes a while and then suddenly it's gone and the services are running. Not a problem for me because I rarely restart my server, but it is annoying when the start of the VMs is delayed due to problems with libvirtd or virtqemud. Libvirt is inactive after reboot / boot.

After manual restart av libvirt service:

Mar 04 14:14:48  systemd[1]: Starting libvirtd.service - Virtualization daemon...
Mar 04 14:14:48  systemd[1]: Started libvirtd.service - Virtualization daemon.
Mar 04 14:14:49  libvirtd[7142]: libvirt version: 9.7.0, package: 2.fc39 (Fedora Project, 2024-01-03-22:32:21, )
Mar 04 14:14:49 libvirtd[7142]: hostname: wolkenwolf-proxy.ddnss.de
Mar 04 14:14:49  libvirtd[7142]: Failed to acquire pid file '/run/libvirt/storage/driver.pid': Resource temporarily unavailable
Mar 04 14:14:49  libvirtd[7142]: Initialization of storage state driver failed: Failed to acquire pid file '/run/libvirt/storage/driver.pid': Resource temporarily una>
Mar 04 14:14:49  libvirtd[7142]: Driver state initialization failed
Mar 04 14:14:49  systemd[1]: libvirtd.service: Deactivated successfully.

And virtqemud:

Mar 04 14:13:55 virtqemud[6537]: Failed to connect socket to '/var/run/libvirt/virtsecretd-sock': No such file or directory
Mar 04 14:14:48  systemd[1]: Stopping virtqemud.service - Virtualization qemu daemon...
Mar 04 14:14:48  virtqemud[6537]: Cannot recv data: Connection reset by peer
Mar 04 14:14:48  virtqemud[6537]: unexpected network event deregister failure
Mar 04 14:14:48  virtqemud[6537]: Cannot write data: Broken pipe
Mar 04 14:14:48  virtqemud[6537]: unexpected node device event deregister failure
Mar 04 14:15:18  virtqemud[6537]: Make forcefull daemon shutdown
Mar 04 14:15:18  systemd[1]: virtqemud.service: Main process exited, code=exited, status=1/FAILURE
Mar 04 14:15:18  systemd[1]: virtqemud.service: Failed with result 'exit-code'.
Mar 04 14:15:18  systemd[1]: Stopped virtqemud.service - Virtualization qemu daemon.

But after a little while both services running fine:

systemctl status libvirtd
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Mon 2024-03-04 14:23:32 CET; 2s ago
TriggeredBy: ○ libvirtd-tls.socket
             ○ libvirtd-tcp.socket
             ● libvirtd-admin.socket
             ● libvirtd.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 7422 (libvirtd)
      Tasks: 20 (limit: 32768)
     Memory: 11.2M
        CPU: 269ms
     CGroup: /system.slice/libvirtd.service
             └─7422 /usr/sbin/libvirtd --timeout 120

Mar 04 14:23:32  systemd[1]: Starting libvirtd.service - Virtualization daemon...
Mar 04 14:23:32 systemd[1]: Started libvirtd.service - Virtualization daemon.
systemctl status virtqemud
● virtqemud.service - Virtualization qemu daemon
     Loaded: loaded (/usr/lib/systemd/system/virtqemud.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Mon 2024-03-04 14:23:58 CET; 1s ago
TriggeredBy: ● virtqemud-ro.socket
             ● virtqemud-admin.socket
             ● virtqemud.socket
       Docs: man:virtqemud(8)
             https://libvirt.org
   Main PID: 7521 (virtqemud)
      Tasks: 19 (limit: 32768)
     Memory: 8.4M
        CPU: 59ms
     CGroup: /system.slice/virtqemud.service
             └─7521 /usr/sbin/virtqemud --timeout 120

Mar 04 14:23:58 Starting virtqemud.service - Virtualization qemu daemon...
Mar 04 14:23:58 Started virtqemud.service - Virtualization qemu daemon.