Projet

Général

Profil

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

Ajouté par Laurent Gourvenec il y a presque 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
19/04/2022
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Révisions associées

Révision b653699e (diff)
Ajouté par Laurent Gourvenec il y a presque 2 ans

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

Historique

#1 Mis à jour par Laurent Gourvenec il y a presque 2 ans

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Laurent Gourvenec il y a presque 2 ans

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 Mis à jour par Laurent Gourvenec il y a presque 2 ans

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 Mis à jour par Laurent Gourvenec il y a presque 2 ans

  • Statut changé de En cours à À valider
  • % réalisé changé de 0 à 100

#5 Mis à jour par Ludwig Seys il y a presque 2 ans

  • Statut changé de À valider à Résolu

#6 Mis à jour par Joël Cuissinat il y a presque 2 ans

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 Mis à jour par Joël Cuissinat il y a presque 2 ans

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 Mis à jour par Joël Cuissinat il y a presque 2 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF