Un billet d’humeur et d’humour qui risque de s’étaler un peu. Prenez donc un café ou un thé et dégustez les mésaventures de ma journée du 21 mars 2021. Vous allez comprendre pourquoi le dimanche est sûrement la pire journée pour avoir droit à un bug assez casse-bonbons.
Comme tous les matins, je mets à jour mon installation d’Archlinux. Dans le lot, je constate l’arrivée de la dernière révision en date du noyau Linux 5.11, le 5.11.8. Il y a d’autres mises à jour dans le lot, comme les premiers éléments de Gnome 40, comme la calculatrice et le moniteur système.
J’en profite pour en parler sur mes réseaux asociaux… euh, je voulais dire sociaux, comme Mastodon par exemple avec la capture d’écran à l’appui qui va bien.
Tout content, je redémarre. Puis je me dis qu’avec l’arrivée de ces éléments, il serait bien de voir ce que donne l’environnement sur sa distribution mère, la Fedora Linux. Je récupère donc une image d’une pré-bêta de la Fedora Linux 34. Je l’installe tranquillement dans une machine virtuelle Qemu dédiée en utilisant Virt-Manager.
Je décide donc de l’explorer un, histoire de prendre des notes pour un potentiel article. Comme j’aime travailler en musique, je lance Quodlibet et pas moins de 5 secondes plus tard, j’ai droit à un superbe plantage de ma session Gnome. Je récupère la main, un peu secoué par une telle mauvaise surprise.
Ma première idée est de rétrograder le noyau et les mises à jour jusqu’à trouver le paquet coupable. En gros, pour la première fois depuis que j’ai cette installation, je retourne sur les dépôts stables au lieu d’être en testing.
Oui, je sais, je cherche les ennuis en étant en testing, mais j’ai rarement eu des tracas auparavant, donc… Bref !
Mon premier suspect est la nouvelle version du noyau. En faisant quelques recherches, je tombe sur un rapport de bug proche de mon problème.
Mais ce n’est complètement celui-ci. Je préfère prévenir en parlant sur mes réseaux asociaux (encore une fois) d’un bug qui serait lié à cette version du noyau en ayant la fonctionnalité IOMMU désactivée. Mais cela se révelèra être une fausse piste.
J’ouvre un rapport de bug pour faire remonter mes ennuis. Je me dis qu’avec un peu de chance, un des mainteneurs de la distribution me donnera la solution.
Vous pouvez voir sur le rapport de bug que j’ai fait pas mal de tests. Mais c’est en étudiant le journal d’un plantage que le bout du tunnel commence à se faire voir.
Je trouve en effet deux messages qui ne sont pas lié au noyau mais à Gnome Shell :
mars 21 20:37:49 fredo-arch-gnome kernel: traps: gnome-shell[1057] general protection fault ip:7f77fe3a548a sp:7ffff9c48b10 error:0 in libmozjs-78.so[7f77fe2c2000+b72000]
mars 21 20:46:35 fredo-arch-gnome kernel: traps: gnome-shell[6087] general protection fault ip:7f7c7401fb07 sp:7ffebfbc3cf0 error:0 in libgjs.so.0.0.0[7f7c73fe7000+84000]
En faisant une recherche rapide, je tombe sur un composant, gjs qui a été mis à jour le matin même. Je décide donc de le faire rétrograder et miracle : je n’ai plus le crash. Je décide par acquis de conscience de retrouver les informations dans le fichier /var/log/pacman.log. Et je tombe sur ça :
[2021-03-21T08:49:24+0100] [ALPM] upgraded gjs (2:1.66.2-1 -> 2:1.68.0-1)
[2021-03-21T08:49:24+0100] [ALPM] upgraded libldap (2.4.57-1 -> 2.4.58-1)
[2021-03-21T08:49:24+0100] [ALPM] upgraded gnome-calculator (3.38.2-1 -> 40.0-1)
[2021-03-21T08:49:24+0100] [ALPM] upgraded gnome-screenshot (3.38.0-1 -> 40.0-2)
[2021-03-21T08:49:24+0100] [ALPM] upgraded gnome-system-monitor (3.38.0-1 -> 40.0-1)
[2021-03-21T08:49:24+0100] [ALPM] upgraded imagemagick (7.0.11.3-1 -> 7.0.11.4-1)
[2021-03-21T08:49:24+0100] [ALPM] upgraded libvirt (1:7.0.0-3 -> 1:7.1.0-3)
[2021-03-21T08:49:24+0100] [ALPM] upgraded libvirt-glib (3.0.0-2 -> 4.0.0-1)
[2021-03-21T08:49:24+0100] [ALPM] upgraded libvirt-python (1:6.4.0-3 -> 1:7.1.0-1)
[2021-03-21T08:49:25+0100] [ALPM] upgraded linux (5.11.7.arch1-1 -> 5.11.8.arch1-1)
[2021-03-21T08:49:29+0100] [ALPM] upgraded linux-headers (5.11.7.arch1-1 -> 5.11.8.arch1-1)
[2021-03-21T08:49:29+0100] [ALPM] upgraded virtualbox-host-modules-arch (6.1.18-19 -> 6.1.18-20)
[2021-03-21T08:49:29+0100] [ALPM] upgraded yelp-xsl (3.38.3-1 -> 40.0-1)
[2021-03-21T08:49:29+0100] [ALPM] upgraded yelp-tools (3.38.0-1 -> 40.0-1)
Mon intuition avait été la bonne. Un problème lié au composant gjs. Mais cela ne résolvait qu’à moitié le problème. C’est alors que la personne qui m’a aidé sur mon rapport de bug m’oriente vers une autre entrée sur l’outil de suivi.
Et d’un seul coup, je suis en terrain connu. Le problème rapporté ressemble comme deux gouttes d’eau au mien. En désactivant l’extension « gnome-shell-extension-appindicator« , je n’ai plus le moindre plantage, mais je perds une zone de stockage des icones de notifications.
J’avais passé la moitié de la journée à accuser le noyau mais c’était « tout simplement » une extension, point sensible de Gnome qui semble être cassée.
Inutile de préciser que j’avais passé sur le plan informatique, une mauvaise journée, et surtout la pire pour avoir un bug, un dimanche. Tout est bien qui finit bien même si cela fut long. Je me demande combien de personnes auraient changé de distribution en rencontrant ce genre de bug bien vicieux…
J’ai pu sauvé mon installation qui a dépassé les trois ans…
$ head /var/log/pacman.log -n 20
[2018-02-27 17:39] [PACMAN] Running 'pacman -r /mnt -Sy --force --cachedir=/mnt/var/cache/pacman/pkg --noconfirm bash bzip2 coreutils cryptsetup device-mapper dhcpcd diffutils e2fsprogs file filesystem findutils gawk gcc-libs gettext glibc grep gzip inetutils iproute2 iputils jfsutils less licenses linux logrotate lvm2 man-db man-pages mdadm nano netctl pacman pciutils pcmciautils perl procps-ng psmisc reiserfsprogs s-nail sed shadow sysfsutils systemd-sysvcompat tar texinfo usbutils util-linux vi which xfsprogs alsa-utils base-devel cpupower cups cups-pdf dialog efibootmgr ffmpegthumbnailer git grml-zsh-config grub gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly gtk3-print-backends gtk-engine-murrine gvfs gvfs-mtp gvfs-smb libreoffice-fresh libreoffice-fresh-fr lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings linux-headers mate mate-extra mesa-libgl networkmanager network-manager-applet ntfs-3g pamac-aur pavucontrol pulseaudio pulseaudio-alsa screenfetch ttf-dejavu unzip vim wget wireless_tools wpa_actiond wpa_supplicant xdg-user-dirs xf86-video-ati xorg-apps xorg-server xorg-xinit xterm zsh zsh-completions zsh-syntax-highlighting'
[2018-02-27 17:39] [PACMAN] synchronizing package lists
[2018-02-27 17:44] [ALPM] transaction started
[2018-02-27 17:44] [ALPM] installed linux-api-headers (4.14.8-1)
[2018-02-27 17:44] [ALPM] installed tzdata (2018c-1)
[2018-02-27 17:44] [ALPM] installed iana-etc (20180221-1)
[2018-02-27 17:44] [ALPM] installed filesystem (2017.10-2)
[2018-02-27 17:44] [ALPM] installed glibc (2.26-11)
[2018-02-27 17:44] [ALPM] installed gcc-libs (7.3.0-1)
[2018-02-27 17:44] [ALPM] installed ncurses (6.1-3)
[2018-02-27 17:44] [ALPM] installed readline (7.0.003-1)
[2018-02-27 17:44] [ALPM] installed bash (4.4.019-1)
[2018-02-27 17:44] [ALPM] installed bzip2 (1.0.6-7)
[2018-02-27 17:44] [ALPM] installed attr (2.4.47-3)
[2018-02-27 17:44] [ALPM] installed acl (2.2.52-4)
[2018-02-27 17:44] [ALPM] installed gmp (6.1.2-1)
[2018-02-27 17:44] [ALPM] installed libcap (2.25-1)
[2018-02-27 17:44] [ALPM] installed gdbm (1.14.1-1)
[2018-02-27 17:44] [ALPM] installed db (5.3.28-3)
[2018-02-27 17:44] [ALPM] installed perl (5.26.1-2)
Comme le temps passe vite… Ce doit être sûrement une des plus vieilles installations d’Archlinux que j’ai jamais eu sous la souris, et pourtant je lui en fais voir de toutes les couleurs !