Project

General

Profile

Tâche #34091

Scénario #34025: Hapy 2.8 : instance bloquée sur 'Disable and mask libvirt-guests service'

Revoir les dépendances des services libvirtd/libvirt-guests

Added by Laurent Gourvenec over 1 year ago. Updated over 1 year ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
04/19/2022
Due date:
% Done:

100%

Remaining (hours):
0.0

Associated revisions

Revision b653699e (diff)
Added by Laurent Gourvenec over 1 year ago

Démarre libvirt-guests après multi-user.target

Casse une dépendance circulaire systemd. De plus, libvirt-guests a besoin
de libvirtd et lbvirtd est démarré après multi-user.target...

Ref #34091

History

#1 Updated by Laurent Gourvenec over 1 year ago

  • Status changed from Nouveau to En cours

#2 Updated by Laurent Gourvenec over 1 year ago

systemd-analyze verify default.target montre bien le problème de dépendance circulaire comme présenté dans les journaux de systemd.
Avec l'aide de la commande systemctl show -p Requires,Wants,Requisite,BindsTo,PartOf,Before,After <service/target> on peut voir les dépendances (notables) suivantes :

Multi-user.target:  Before=bastion libvirtd                               <- défini par eole
                    After=libvirtd-guests                                 <- défini par le système
libvirtd.service:   Before=libvirt-guests                                 <- défini par le système
                    After=bastion libvirtd-tcp.socket multi-user.target   <- défini par eole
libvirt-guests:     Before=multi-user.target                              <- défini par le système
bastion:            Before=libvirtd                                       <- défini par eole
                    After=multi-user.target                               <- défini par eole

On peut résoudre le problème en ajoutant un After=multi-user.target à libvirt-guests comme fait pour bastion

#3 Updated by Laurent Gourvenec over 1 year ago

En rajoutant le fichier /etc/systemd/system/libvirt-guests.service.d/test.conf

[Unit]
After=multi-user.target

il n'y a pas plus de soucis de dépendance circulaire. En revanche, le problème de timeout à l'instance se reproduit à 100% avec cette solution...
La commande qui hang est
systemctl stop libvirt-guests.service

qui appelle la commande
/bin/sh /usr/lib/libvirt/libvirt-guests.sh stop

qui appelle la commande
virsh connect

#4 Updated by Laurent Gourvenec over 1 year ago

  • Status changed from En cours to À valider
  • % Done changed from 0 to 100

#5 Updated by Ludwig Seys over 1 year ago

  • Status changed from À valider to Résolu

#6 Updated by Joël Cuissinat over 1 year ago

eole-libvirt$ git tag --contains b653699e 
debian/eole/2.8.1-1
debian/eole/2.9.0-1
pkg/eole/eole-2.8/2.8.1-1
pkg/eole/eole-2.9/2.9.0-1

#7 Updated by Joël Cuissinat over 1 year ago

root@hapy:~# dpkg -S multi-user.conf 
eole-one-master: /etc/systemd/system/opennebula.service.d/multi-user.conf
eole-libvirt: /etc/systemd/system/libvirt-guests.service.d/multi-user.conf
eole-one-master: /etc/systemd/system/opennebula-flow.service.d/multi-user.conf
eole-one-master: /etc/systemd/system/opennebula-sunstone.service.d/multi-user.conf
eole-one-master: /etc/systemd/system/opennebula-scheduler.service.d/multi-user.conf

root@hapy:~# cat /etc/systemd/system/libvirt-guests.service.d/multi-user.conf 
[Unit]
After=multi-user.target

#8 Updated by Joël Cuissinat over 1 year ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

Also available in: Atom PDF