[linux-l] NFS file locking: es geht einfach nicht...

Steffen Dettmer steffen at dett.de
Fr Apr 2 14:42:11 CEST 2004


Hi,

ich hab zwei SuSE 8.2 Maschinen, nenn ich mal Server und wella
(nfs client, der flock machen möchte).

Server macht NFS-Server und wella bekommt natürlich kein flock
via NFS, verdammt.

Wenn Server sich selbst (localhost) mountet, geht flock! Wenn
wella sich selbst was exportiert und mountet, geht flock auch
nicht.  Noch verrückter: wenn Server den Test-export von wella
mountet, geht flock auch nicht! Geht also genau nur, wenn Server
sich selbst mountet.

Irgendwelche Ideen, woran das liegen könnte?

Hier ein paar Infos und was ich bereits probiert hab:

wella:~ # ps ax|egrep  '(lock|stat)'
 1017 ?        S      0:00 /sbin/rpc.statd
 1758 ?        SW     0:00 [lockd]

wella:~ # uname -a
Linux wella 2.4.20-4GB #1 Fri Mar 12 15:31:02 UTC 2004 i686
unknown unknown GNU/Linux

(SuSE 9.0er Kernel k_deflt-2.4.21-199.i586.rpm auch probiert,
geht auch nicht)

wella:~ # rpm -q nfs-utils   
nfs-utils-1.0.1-109
(arg alt?!)

(Server hat nfs-utils-1.0.1-89. Die hatte ich testweise auch auf
wella installiert, ging auch nicht, hatte sogar reboot gemacht,
um sicherzugehen, dass [lockd] (Kerneltask??) neu gestartet wird)

wella:~ # cat /etc/exports |grep -v '^#'
/tmp/std localhost(rw,sync)

wella:~ # cat /tmp/std/flock.pl 
#!/usr/bin/perl -w
use Fcntl ":flock"; # import LOCK_* constants
open(ME, $0) or die ("open me $0: $!\n");
flock(ME, LOCK_EX) or die ("flock myself failed: $!\n");
close(ME);

wella:~ # logger test_start
wella:~ # mount -o lock localhost:/tmp/std/ /mnt
wella:~ # /mnt/flock.pl 
flock myself failed: No locks available
wella:~ # logger test_failed  
wella:~ # umount /mnt/
wella:~ # logger test_end   
wella:~ # tail -5 /var/log/messages 
Apr  2 14:23:28 wella root: test_start
Apr  2 14:23:39 wella rpc.mountd: authenticated mount request
	from localhost:810 for /tmp/std (/tmp/std)
Apr  2 14:23:57 wella root: test_failed
Apr  2 14:23:59 wella rpc.mountd: authenticated unmount request
	from localhost:813 for /tmp/std (/tmp/std)
Apr  2 14:24:03 wella root: test_end


Der Hammer überhaupt ist IMHO, dass der gleiche
"selbst-mount"-Test bei "Server" funktioniert! Server hat ne
ältere nfs-utils-Version, ich hab aber auf wella auf die gleiche
Version gedowngraded und das gleiche Resultat erzielt. Server hat
auch einen älteren Kernel, aber kernel-upgrade hab ich ja auch
probiert (und ich hab eine andere Büchse mit auch der alten
Kernel-Version, wo der selbst-mount-test ebenfalls versagt!).

Ich hab keine Idee mehr, was ich noch testen und probieren
könnte. Ich hab irgendwie langsam alle Versions-Kombinationen
durchprobiert und finde nicht herraus, was bei Server und wella
unterschiedlich konfiguriert ist. Ich vermute, der client-Kram
von wella macht was falsch.

Ich hab gegoogelt, und da ähnliche Probleme gefunden, meistens
lieft statd nicht und dann gings wohl. Bei mir läuft der
immerhin. Was der statd machen soll, ist mir völlig unklar, ein
"strace -p <pid>" zeigt bloss select(1024, [3 4 5], NULL, NULL, NULL
- komisch... Das ist auf server auch so.

Kann / muss man da noch irgendwas einstellen? Wo kann ich gucken?

Bitte um HILFE!!

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l