Failed to open file ...?

nihonto

Well-Known Member
Hiho,

habe jetzt schon ein paarmal ein seltsames Phänomen beobachtet. Wenn ich den Rechner runterfahre und der x-server sich abschaltet, sehe ich eine ellenlange Reihe dieser Meldung:

Failed to open file. Check ulimit value: Too many open files

"Too many open files"??? Wo sollen die denn herkommen? Hier läuft nur ein harmloses Laptop als Desktop-Ersatz.
Komischerweise taucht die Meldung in keinem logfile auf, auch nicht in dmesg. Die man-Page zu ulimit ist reichlich schwer verständlich und hilft nicht wirklich weiter:mad:. Und wenn ich einfach 'ulimit' am Prompt eingebe, kommt das hier:

/home/nihonto $ ulimit
unlimited

Und ein 'ulimit -a' ergibt:

/home/nihonto $ ulimit -a
time(cpu-seconds) unlimited
file(blocks) unlimited
coredump(blocks) unlimited
data(kbytes) 131072
stack(kbytes) 2048
lockedmem(kbytes) 168629
memory(kbytes) 505884
nofiles(descriptors) 64
processes 160
sbsize(bytes) unlimited

... spanische Bahnhöfe ...:confused:
 
Zuletzt bearbeitet:
Es gibt ein Limit vom Kernel (in irgendeiner sysctl). Du solltest aber besser herausfinden wovon die vielen Dateien geöffnet werden.
 
Hmmm, komisch das

/home/nihonto $ sysctl kern.maxfiles
kern.maxfiles = 1772

Was bitte soll denn so viele Files öffnen??? Und vor allem: Wo kann ich anfangen zu suchen:confused: Top gibt nichts her, /var/log/messages auch nicht - pffffff ...
 
Versuch doch mal ps x als root, dann solltest du alle prozesse sehen und mal schauen, welche prozesse dir "unbekannt" vorkommen, oder hier posten, um mal zu schauen, was es denn sein könnte. :)
 
Schau'n wir doch mal:

/home/nihonto $ ps x
PID TTY STAT TIME COMMAND
0 ? DKs 0:00.00 [swapper]
1 ? Is 0:00.01 init
2 ? DK 0:00.00 [usb0]
3 ? DK 0:00.00 [usbtask]
4 ? DK 0:00.00 [usb1]
5 ? DK 0:00.00 [usb2]
6 ? DK 0:00.00 [usb3]
7 ? DK 0:00.00 [cardslot0]
8 ? DK 0:00.00 [cardslot1]
9 ? DK 0:00.00 [atabus0]
10 ? DK 0:00.00 [atabus1]
11 ? DK 0:00.00 [pms0]
12 ? DK 0:00.02 [apm0]
13 ? DK 0:00.00 [atapibus0]
14 ? DK 0:00.00 [pagedaemon]
15 ? DK 0:01.44 [ioflush]
16 ? DK 0:00.01 [aiodoned]
112 ? R 0:56.42 /usr/X11R6/bin/X :0 -nolisten tcp (XFree86)
187 ? Is 0:00.00 /sbin/dhclient bge0
371 ? Ss 0:00.01 /usr/sbin/syslogd -s
509 ? Is 0:00.06 mount_mfs -s 307440 /dev/wd0b /tmp
730 ? Is 0:00.01 /usr/sbin/cron
754 ? Ss 0:00.03 /usr/pkg/sbin/cupsd
791 ? Is 0:00.00 /usr/sbin/inetd -l
302 ttyp0 S 0:00.03 ksh
21957 ttyp0 R+ 0:00.00 ps x
828 ttyE0 Is 0:00.01 login
824 ttyE1 Is+ 0:00.00 /usr/libexec/getty Pc ttyE1
799 ttyE2 Is+ 0:00.00 /usr/libexec/getty Pc ttyE2
725 ttyE3 Is+ 0:00.00 /usr/libexec/getty Pc ttyE3

Sieht für mich eher harmlos aus. Das einzige, was mir komisch vorkommt, ist das hier:

509 ? Is 0:00.06 mount_mfs -s 307440 /dev/wd0b /tmp

In der /etc/fstab steht:

/dev/wd0b /tmp mfs rw,-s=307440

Sollte das Dateisystem nicht ffs sein? Oder lieg' ich da jetzt völlig falsch?
 
Hmmm, komisch das

/home/nihonto $ sysctl kern.maxfiles
kern.maxfiles = 1772

Was bitte soll denn so viele Files öffnen??? Und vor allem: Wo kann ich anfangen zu suchen:confused: Top gibt nichts her, /var/log/messages auch nicht - pffffff ...
Die Zahl ist aber auch extrem klein. Das könnte auch von kdeinit oder etwas ähnlichem erreicht werden. Ist das NetBSD Default?

Unter FreeBSD habe ich kern.maxfiles=12328. An dem Wert habe ich nicht gedreht.
 
Die Zahl ist aber auch extrem klein. Das könnte auch von kdeinit oder etwas ähnlichem erreicht werden. Ist das NetBSD Default?

Jo, sieht so aus. Ich hab' da jedenfalls am Kernel nix verändert:confused:

@ Vincent Vega

Hab' gerade lsof installiert. Ergibt 'ne kilometerlange Meldung (s. Anhang). Wonach soll ich denn da schauen? Welche Anwendungen besonders häufig auftauchen? Hmmm, da käme der xfce4-Kram in Frage, Opera, aber auch das Terminal. Leider kenn' ich mich nicht gut genug aus, um sagen zu können, was davon normal ist und was "zu viel":o.
 

Anhänge

  • lsof.txt
    115,7 KB · Aufrufe: 450
Naja, kannst ja mal den Output nach wc pipen um zu zählen, ob das Limit wirklich erreicht wurde... ansonsten gilt, was Kamikaze gesagt hat: Das Limit ist extrem niedrig, auf meinem FreeBSD System ist es um eine Größenordnung größer, auf meiner Soekris (OpenBSD) aber auch bei 1772, da sind aber auch keine Desktopanwendungen wie Browser, X, KDE, etc. gestartet und laut fstat (den Tipp wollte ich Dir eigentlich geben, ist nml schon im Basissystem und macht das gleiche wie lsof) sind gerade einmal 200 Dateien offen.
 
Hallo

... kannste mir evtl. 'nen Tip geben, wie ich das rausfinde? Das wäre super:)!

Ich hab mal in "sys/kern/vfs_syscalls.c" und in "sys/kern/kern_descrip.c" geschaut und sehe momentan keinen anderen Weg, als mittels ktrace(1) die Informationen zu erhalten.

Ich bin mir bewusst, dass dies eine sehr schlechte Lösung des Problems darstellt. Wenn einer der Anwesenden einen anderen/besseren Vorschlag machen kann, dann immer her damit.

MfG

Lars
 
Hi Lars,

vielen Dank für Deine Hilfe:)!!!

Ich hab' allerdings beschlossen, erstmal wieder mein Glück mit OpenBSD zu versuchen:rolleyes:. Da hab' ich zwar auch diverse Probleme, aber die Grundkonfiguration ist "ab Werk" schon ein wenig komfortabler als unter NetBSD.

Ich schau evtl. mal wieder bei NetBSD vorbei, wenn Version 4.0 rauskommt;)!
 
Zurück
Oben