web-dev-qa-db-fra.com

Configurer le système man-db plante avec des appels système incorrects

Ubuntu 18.04 x86_64. Depuis ma mise à niveau de 17h10 à 18h04, chaque fois que j'installe ou exécute des mises à jour et que la mise à jour suivante de man-db se produit, le système reste bloqué pendant une dizaine de minutes en générant des erreurs et en frappant durement le processeur.

Setting up man-db (2.8.3-2) ...
Updating database of manual pages ...
/usr/bin/mandb: zcat: Bad system call (core dumped)
/usr/bin/mandb: zcat < /usr/share/man/man1/wodim.1.gz: Bad system call (core dumped)
/usr/bin/mandb: /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE -q: Bad system call (core dumped)
/usr/bin/mandb: zcat < /usr/share/man/man1/grub-editenv.1.gz: Bad system call (core dumped)
/usr/bin/mandb: zcat: Bad system call (core dumped)
/usr/bin/mandb: zcat < /usr/share/man/man1/grub-editenv.1.gz: Bad system call (core dumped)
/usr/bin/mandb: /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE -q: Bad system call (core dumped)
/usr/bin/mandb: zcat < /usr/share/man/man1/grub-file.1.gz: Bad system call (core dumped)
.
.
.

De plus, les pages de manuel génèrent des erreurs et sont vides:

     Manual page man(1) line ?/? (END) (press h for help or q to quit)man: 
    zcat < /usr/share/man/man1/man.1.gz: Bad system call (core dumped)
    man: /usr/lib/man-db/manconv: Bad system call (core dumped)man: preconv: Segmentation fault (core dumped)
    man: tbl: Segmentation fault (core dumped)
    man: nroff: Bad system call (core dumped)
man: gzip: Bad system call (core dumped)

Un rapport de bogue sur Debian décrivant un problème similaire, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890355 , mais j'utilise déjà la version de man-db cela a soi-disant résolu le problème (2.8.3). J'ai essayé de réinstaller man-db sans effet. Quelqu'un at-il vécu quelque chose de semblable et comment y remédier?

Voici le lien vers le fichier de trace demandé:

manpage.trace

3
Huaidan

J'ai eu plusieurs réponses à ma demande de sortie de strace, pour lesquelles je vous remercie beaucoup. La plupart d'entre eux indiquent qu'ils utilisent le logiciel Astrill VPN, qui injecte du code dans tous les processus du système à l'aide de /etc/ld.so.preload, ce qui complique encore davantage la mise en sandbox efficace. Je crois que j'ai travaillé autour de cela dans git master.

Une réponse a indiqué utiliser le logiciel antivirus ESET File Security, qui fait la même chose. J'ai déjà essayé de résoudre ces problèmes par le passé, mais cela semble être une cible mobile. J'ai confié mon meilleure solution à une solution de contournement à git master.

En supposant que je reçoive des rapports de tests réussis sur ces modifications, elles figureront dans man-db 2.8.4, et elles sont suffisamment petites et autonomes pour que je devrais pouvoir les appliquer en tant que mises à jour stables d'Ubuntu 18.04. .

3
Colin Watson

J'ai ce problème et vu sur un certain nombre de machines, j'ai contacté Astrill et ils ont répondu:

"Cela est causé par apparmor. Assurez-vous de mettre à jour astrill avec la dernière version. J'ai essayé de l'améliorer en excluant certains programmes qui se conduisent mal. En gros, apparmor bloque ces programmes lorsqu'ils tentent d'accéder à la mémoire partagée au lieu de refuser l'accès en renvoyant le code d'erreur correspondant. .Je crois que c’est un bogue dans les bibliothèques d’apparmor ou du système et que je ne peux pas faire grand chose à ce sujet, sauf d’exclure de tels programmes.

J'ai créé un fichier de configuration dans lequel vous pouvez exclure les programmes défectueux en spécifiant le nom de l'exécutable, un par ligne: /etc/lsp.exclude

J'ai corrigé man dans certaines versions récentes, alors assurez-vous d'avoir la dernière version d'astrill. Si cela ne fonctionne pas, essayez de savoir quels programmes ajouter à la liste. S'il vous plaît envoyez-moi la liste et je pourrai ensuite l'inclure dans la prochaine version.

J'ai exclu sshd, bash, sh, minable, groff, mec "

Je peux confirmer que si mandb est ajouté /etc/lsp.exclude le problème disparaît (au moins sur ma machine). J'ai également informé Astrill.

UPDATE: Astrill m'a informé qu'ils ajouteraient mandb à /etc/lsp.exclude

UPDATE: J'ai transmis vos commentaires à astrill, ils m'ont informé que la prochaine mise à jour exclurait mandb mais ...

0
John H