Erreur Filter failed Cups

De EjnTricks
Révision de 31 décembre 2013 à 23:53 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Lors d'une mise à jour de la machine Ubuntu, passage depuis 12.04 vers 14.04 développement, le serveur d'impression Cups n'était plus disponible. Malgré la mie à jour des utilitaires HP, le message d'erreur "Filter failed" était systématique.


Cet article présente la cause et la solution trouvée.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Analyse

La première recherche est réalisée dans les logs de Cups, se trouvant par défaut dans le répertoire /var/log/cups sur une machine Ubuntu. Malheureusement, aucun message explicite n'est trouvé.

Les deuxièmes logs consultées sont celle du système sous /var/log/syslog. Dans celle-ci, les messages suivants ont été observés:

Dec 31 19:56:47 etienne-server kernel: [61122.876314] type=1400 audit(1388516207.232:61): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/cupsd" 
name="/etc/ldap/ldap.conf" pid=2471 comm="cupsd" requested_mask="r" denied_mask="r" fsuid=0 ouid=119
Dec 31 19:56:47 etienne-server kernel: [61122.876414] type=1400 audit(1388516207.232:62): apparmor="DENIED" operation="connect" parent=1 profile="/usr/sbin/cupsd" 
name="/run/slapd/ldapi" pid=2471 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0
Dec 31 19:56:47 etienne-server kernel: [61122.876783] type=1400 audit(1388516207.232:63): apparmor="DENIED" operation="connect" parent=1 profile="/usr/sbin/cupsd" 
name="/run/slapd/ldapi" pid=2471 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0

Le message est explicite, l'application AppArmor refuse l'accès en écriture au fichier /run/slapd/ldapi. La configuration se trouve dans le fichier /etc/apparmor.d/usr.sbin.cupsd dont le contenu est:

Donc les restrictions mises en place ne permettent pas à l'application /usr/sbin/cupsd d'accéder aux fichiers /etc/ldap/ldap.conf et /run/slapd/ldapi.

Mais comme souvent, un point d'entrée a été mise en place afin d'étendre la configuration, à travers l'instruction #include <local/usr.sbin.cupsd>. Attention, le caractère # devant l'instruction include n'est pas utilisé pour démarrer un commentaire. Il ne faut pas le supprimer.


Icon-Configuration-Settings.png Correctif

Une fois les messages d'erreur identifié, il est aisé d'appliquer un correctif. D'après les deux messages d'erreur, Cups essaye d'accéder aux fichier:

  • /etc/ldap/ldap.conf en lecture uniquement.
  • /run/slapd/ldapi en écriture uniquement. Le droit de lecture lui sera également appliqué.

Le fichier /etc/apparmor.d/local/usr.sbin.cupsd est donc modifié pour rajouter les droits d'accès aux fichiers:

# Site-specific additions and overrides for usr.sbin.cupsd.
# For more details, please see /etc/apparmor.d/local/README.

  /etc/ldap/ldap.conf r,
  /run/slapd/ldapi rw,

Afin que cela soit pris en compte, il faut recharger le service AppArmor:

#sudo service apparmor restart
 * Reloading AppArmor profiles      Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd      [ OK ]

Enfin le service Cups doit être redémarré.

#sudo service cups restart
cups stop/waiting
cups start/running, process 22038

L'impression de la page de test ne présente plus de message d'erreur dans la log système, /var/log/syslog, et la log page_log, /var/log/cups/page_log présente le message suivant:

HP_LaserJet_1018 anonymous 56 [31/Dec/2013:23:46:19 +0100] 1 1 - localhost Test Page - -

Le dernier test étant de voir sortir l'impression de l'imprimante.