Beitrag
von basman » 28.12.2005 07:36:03
Das /proc ist ohnehin ein emuliertes Dateisystem, in dem man Laufzeitinformationen des Kernels wiederfindet, die nicht auf der Festplatte gespeichert sind. Fehler im /proc-Dateisystem sind daher nicht gravierend. Sie können nicht durch ein Disk-Checktool behoben werden.
Die Fehlermeldung würde mich voreilig auf einen Kernel-bug schliessen lassen (neueren Kernel installieren). Aber das wäre der Holzweg. Solche Phänomene können bei verschiedenen Befehlen leicht auftreten, sobald man sie über /proc laufen lässt, weil einige Dateien unterhalb von /proc sehr häufig verschwinden und neu entstehen, zumal es sich um Informationen des laufenden Systems handelt.
In diesem Fall stelle ich mir das Szenario so vor: Du startest find. Das rekursive durchsuchen der Unterverzeichnisse lässt sich verschiedentlich implementieren. Aus technischen Gründen, die hier zu weit führen würden, beachtet find den Hard-Linkcount von Verzeichnissen und Dateien, um effizienter zu scannen. Dieser kann sich jedoch während dem Scan ändern, wenn die Anzahl Unterverzeichnisse oder Dateien sich ändert oder ein Bruder (Hardlink) von /proc/1/task gelöscht wird oder entsteht. Dann stimmt der von find zwischengespeicherte Hardlink-Count (den er aus Gründen der Effizienz zum Glück nur einmal einliest) nicht mehr mit der Anzahl aufzufindender Unterverzeichnisse überein.
Die Fehlermeldung kann also getrost ignoriert werden. Um sie in Zukunft zu umgehen, sollte man find nicht über /proc laufen lassen. Es schadet jedoch auch nicht.