Projet

Général

Profil

Proposition Scénario #29205

plantage du reconfigure après mise à jour de noyau

Ajouté par Thierry Bertrand il y a plus de 4 ans. Mis à jour il y a environ un an.

Statut:
Classée sans suite
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
% réalisé:

0%


Demandes liées

Lié à Distribution EOLE - Tâche #29272: Les modules et extra modules des anciens noyaux ne sont pas supprimés Fermé 15/11/2019

Historique

#1 Mis à jour par Thierry Bertrand il y a plus de 4 ans

Lors de Maj-Auto, il arrive que la suppression d'ancien noyau provoque ce type d'erreur :

Purge des fichiers de configuration de linux-modules-extra-4.15.0-52-generic (4.15.0-52.56) ...
Purge des fichiers de configuration de linux-image-4.15.0-52-generic (4.15.0-52.56) ...
rmdir: impossible de supprimer '/lib/modules/4.15.0-52-generic': Le dossier n'est pas vide

Le soucis c'est qu'apt génère une erreur qui remonte au reconfigure, qui plante...
Pire, sur un amon, le serveur se retrouve en mode openbar !

#2 Mis à jour par Daniel Dehennin il y a plus de 4 ans

Vous déployez un module par DKMS ou autre à tout hasard ?

#3 Mis à jour par Daniel Dehennin il y a plus de 4 ans

Je viens de l’avoir sur un scribe mais cela ne fait pas planter la commande reconfigure qui continue correctement :

-------------------------------------------
          Début de configuration
-------------------------------------------
-------------------------------------------
          Préparation pour reconfigure
-------------------------------------------
Restart Systemd service creoled  [  OK  ]
-------------------------------------------
          Gestion des paquets
-------------------------------------------
Suppression des paquets
Suppression des anciens noyaux et fichiers d'en-tête associés.
Action remove pour root
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  linux-modules-4.15.0-68-generic linux-modules-4.15.0-69-generic
Veuillez utiliser « apt autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  linux-headers-4.15.0-69* linux-headers-4.15.0-69-generic* linux-image-4.15.0-69-generic* linux-modules-extra-4.15.0-69-generic*
0 mis à jour, 0 nouvellement installés, 4 à enlever et 0 non mis à jour.
Après cette opération, 267 Mo d'espace disque seront libérés.
(Lecture de la base de données... 214655 fichiers et répertoires déjà installés.)
Suppression de linux-headers-4.15.0-69-generic (4.15.0-69.78) ...
Suppression de linux-headers-4.15.0-69 (4.15.0-69.78) ...
Suppression de linux-modules-extra-4.15.0-69-generic (4.15.0-69.78) ...
Suppression de linux-image-4.15.0-69-generic (4.15.0-69.78) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-4.15.0-69-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/eole.cfg'
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-4.15.0-71-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.15.0-71-generic
Image Linux trouvée : /boot/vmlinuz-4.15.0-70-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.15.0-70-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
fait
(Lecture de la base de données... 180407 fichiers et répertoires déjà installés.)
Purge des fichiers de configuration de linux-modules-extra-4.15.0-69-generic (4.15.0-69.78) ...
Purge des fichiers de configuration de linux-image-4.15.0-69-generic (4.15.0-69.78) ...
rmdir: impossible de supprimer '/lib/modules/4.15.0-69-generic': Le dossier n'est pas vide
Installation des paquets
Vérification des paquets pour le conteneur root: eole-antivirus-pkg python-crontab eole-dhcp-pkg eole-fichier-primaire-pkg eole-fichier-common-pkg eole-web-pkg eole-bareoswebui-pkg eole-mysql-pkg eole-spamassassin-pkg eole-adminer-pkg eole-annuaire-pkg eole-courier-pkg eole-cups-pkg eole-proftpd-pkg eole-sympa-pkg eole-controle-vnc-pkg eole-exim-pkg eole-exim-auth-pkg eole-ejabberd-pkg eole-scribe-backend esbl-ocs-pkg eole-eoe-apps eole-eop-apps eole-websockify-pkg glpi glpi-plugin-ocsinventoryng roundcube-apps
Action install pour root
Pas de paquet pour l'action install
[…]

C’est une machine virtuelle qui n’a pas de module additionnelle.

Il est probable que cela soit dû à la non suppression du paquet linux-modules-4.15.0-69-generic.

#4 Mis à jour par Daniel Dehennin il y a plus de 4 ans

J’ai testé avec le patch suivant :

diff --git a/creole/fonctionseole.py b/creole/fonctionseole.py
index ec4e21c5..ca122389 100644
--- a/creole/fonctionseole.py
+++ b/creole/fonctionseole.py
@@ -145,6 +145,10 @@ def get_kernel_to_remove():
     to_keep = installed_kernels[-2:]
     # tous les headers installés
     installed_kernels.extend(get_version_filtered_pkgs(prefix='linux-headers'))
+    # tous les modules installés
+    installed_kernels.extend(get_version_filtered_pkgs(prefix='linux-modules'))
+    # tous les extra modules installés
+    installed_kernels.extend(get_version_filtered_pkgs(prefix='linux-modules-extra'))
     # le noyau courant
     to_keep.append('linux-image-{0}'.format(get_current_kernel()))
     # l'éventuel noyau personnalisé
@@ -154,7 +158,13 @@ def get_kernel_to_remove():
     # les headers correspondants aux noyaux à conserver
     headers_to_keep = [k.replace('image', 'headers') for k in to_keep]
     headers_to_keep.extend([h.replace('-generic', '') for h in headers_to_keep])
+    # les modules correspondants aux noyaux à conserver
+    modules_to_keep = [k.replace('image', 'modules') for k in to_keep]
+    # les extra modules correspondants aux noyaux à conserver
+    extra_modules_to_keep = [k.replace('image', 'modules-extra') for k in to_keep]
     to_keep.extend(headers_to_keep)
+    to_keep.extend(modules_to_keep)
+    to_keep.extend(extra_modules_to_keep)
     # on fait la différence
     to_remove = list(set(installed_kernels) - set(to_keep))
     return to_remove

J’ai réinstallé des vieux noyaux et modules et cela supprime bien tout, seulement cela n’empêche pas le message

[…]
Suppression de linux-modules-4.15.0-66-generic (4.15.0-66.75) ...
Suppression de linux-modules-4.15.0-68-generic (4.15.0-68.77) ...
Suppression de linux-modules-4.15.0-69-generic (4.15.0-69.78) ...
(Lecture de la base de données... 178630 fichiers et répertoires déjà installés.)
Purge des fichiers de configuration de linux-modules-4.15.0-66-generic (4.15.0-66.75) ...
dpkg: avertissement: lors de la suppression de linux-modules-4.15.0-66-generic, le répertoire « /lib/modules/4.15.0-66-generic » n'était pas vide, donc il n'a pas été supprimé
Purge des fichiers de configuration de linux-modules-extra-4.15.0-66-generic (4.15.0-66.75) ...
Purge des fichiers de configuration de linux-modules-extra-4.15.0-69-generic (4.15.0-69.78) ...
Purge des fichiers de configuration de linux-image-4.15.0-66-generic (4.15.0-66.75) ...
Purge des fichiers de configuration de linux-modules-4.15.0-68-generic (4.15.0-68.77) ...
Purge des fichiers de configuration de linux-modules-4.15.0-69-generic (4.15.0-69.78) ...
dpkg: avertissement: lors de la suppression de linux-modules-4.15.0-69-generic, le répertoire « /lib/modules/4.15.0-69-generic » n'était pas vide, donc il n'a pas été supprimé
Purge des fichiers de configuration de linux-image-4.15.0-69-generic (4.15.0-69.78) ...
Installation des paquets
[…]

Cela ne semble vraiment pas être la cause de plantage, APT considère que le répertoire devrait être vide et fait un rmdir dessus mais comme le paquet -modules-extra correspondant à la version n’est pas encore supprimé il ne peut pas. Le répertoire sera effectivement supprimé lors de la purge du paquet *-modules-extra*.

Je ne pense pas ce que cela soit la raison du plantage de votre reconfigure.

#5 Mis à jour par Daniel Dehennin il y a plus de 4 ans

Je confirme que cela ne doit pas être la raison du plantage, les scripts postrm utilisent bien un || true afin de ne pas faire planter le script si le rmdir ne fonctionne pas :

root@scribe:~# rgrep rmdir /var/lib/dpkg/info/linux-*.postrm
/var/lib/dpkg/info/linux-image-4.15.0-70-generic.postrm:    rmdir --ignore-fail-on-non-empty /usr/lib/linux/triggers
/var/lib/dpkg/info/linux-image-4.15.0-70-generic.postrm:    rmdir /lib/modules/$version || true
/var/lib/dpkg/info/linux-image-4.15.0-71-generic.postrm:    rmdir --ignore-fail-on-non-empty /usr/lib/linux/triggers
/var/lib/dpkg/info/linux-image-4.15.0-71-generic.postrm:    rmdir /lib/modules/$version || true

#6 Mis à jour par Daniel Dehennin il y a plus de 4 ans

  • Lié à Tâche #29272: Les modules et extra modules des anciens noyaux ne sont pas supprimés ajouté

#7 Mis à jour par Daniel Dehennin il y a plus de 4 ans

J’ai fait une tâche rapide pour la suppression des paquets non pris en compte #29272.

#8 Mis à jour par Joël Cuissinat il y a environ un an

  • Tracker changé de Scénario à Proposition Scénario
  • Statut changé de Nouveau à Classée sans suite

Formats disponibles : Atom PDF