Trunk 5678 mit Samba: Kein Lesen/Schreiben von Dateien > 2GB

kylie-b

Neuer User
Mitglied seit
24 Jul 2009
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Hallo,
ich habe mit Freetz Trunk 5678 und der Labor Firmware 2.54.04.85-18158 für die FB7270v2 ein Image mit dem Freetz Samba gebaut.
Wenn ich mit Windows XP oder Windows 7 Clients auf die Samba Freigabe zugreife, habe ich Folgendes festgestellt: Solange die Dateigröße kleiner 2GB ist, sind alle Operationen möglich: Lesen/Schreiben/Löschen/Umbenennen.

Jedoch scheitern diese Operationen, wenn die Dateigröße mehr als 2GB beträgt. Windows 7 gibt dabei die Fehlermeldung "Fehler 0x8007003A: Der angegebene Server kann den angegebenen Vorgang nicht ausführen" aus. Leider gibt es im Syslog keinerlei Meldungen über das Problem. Dieser Effekt ist unabhängig von der Formatierung der verwendeten Festplatte (getestet mit ext2, NTFS und FAT32).

Greife ich jedoch mit einem Linux Client auf die Samba Freigabe zu, sind alle Dateioperationen möglich, getestet mit Ubuntu 10.04.
Keine Probleme gibt es übrigens, wenn ein Original AVM Image ohne Freetz verwendet wird.

Samba Freigabe in Freetz (keine Freigabe im Fritz Webinterface):
Code:
/var/media/ftp/uStor01 USB-Festplatte 1 0
Erweiterte Samba Einstellungen in Freetz:
Code:
socket options = TCP_NODELAY IPTOS_LOWDELAY
read raw = yes
write raw = yes
oplocks = no
max xmit = 65535
dead time = 15
getwd cache = yes
Mich würde interessieren, ob andere auch dieses Problem haben. Angehängt ist die .Config Datei.

Danke für jede Hilfe.

Gruß
Gerd
 

Anhänge

  • .config.txt
    22.2 KB · Aufrufe: 0
Ich hab das die Tage schonmal gelesen. Keine Ahnung wo oder warst du das?

So richtig kann ich mir nicht erklären wie sowas zu Stande kommt, dass es mit Linux geht und mit Windows nicht. Das würde heißen, dass die unterschiedliche Funktionen für den Zugriff verwenden? Ralf? :)

MfG Oliver
 
Hi Oliver,
ja genau, ich war's, und zwar hier:
http://www.ip-phone-forum.de/showthread.php?t=222007
Ich kann mir auch keinen Reim daraus machen, aber es ist so. Folgendermaßen bin ich vorgegangen:
1. Recover-Image aufgespielt.
2. Labor_FRITZ.Box_Fon_WLAN_7270_v2.54.04.85-18145.image ohne Freetz aufgespielt und Samba Freigaben getestet: Keine Probleme mit Dateien > 2GB.
3. Trunk Image wie oben angegeben gebaut und aufgespielt: Keine Operationen mit Dateien > 2GB mehr möglich.
Ist es womöglich ein ähnliches Problem wie es hier diskutiert wurde?
http://www.ip-phone-forum.de/showthread.php?t=221613

Gruß
Gerd
 
Ist es womöglich ein ähnliches Problem wie es hier diskutiert wurde?
Gut möglich. Samba führt einige Tests beim configure nicht durch. Daher fehlen einige Werte wie z.B. in dem von dir zitierten Fall.

MfG Oliver
 
Was könnte ich machen, um das Problem einzukreisen?

Gruß
Gerd
 
Ich habe gerade eine Datei mit 4GB erstellt und bin dabei, diese auf den Windows-Pc zu kopieren. In etwas über 2 Millionen Minuten will er damit fertig sein.

Umbenennen der Datei funktioniert, Löschen auch. Zum Schreiben habe ich jetzt keinen einfachen Test.

Ich habe zwei Tips:
Mach mal ein strace vom smbd Prozeß, wärend Du die Datei umbenennen willst.
Außerdem kannst Du mal die config.cache komplett löschen und dann nur samba erstellen lassen ("make smba-precompiled"), dann diesen neu erstellten Samba ausprobieren.
 
Hallo Ralf,
im Anhang findest du zwei Dateien mit jeweils einem strace log:
bigfile.txt: Umbenennen der Datei "bigfile" (> 2GB) in "not working". Umbenennen funktionierte nicht.
smallfile.txt: Umbenennen der Datei "smallfile" (< 2GB) in "working". Umbenennen funktioniert.
Das Umbenennen erfolgte jeweils von einem Windows 7 Client aus einer Eingabeaufforderung heraus.
Außerdem habe ich dein Programm statvfs aus diesem Thread:
http://www.ip-phone-forum.de/showthread.php?t=221613
# 10 ausgeführt und folgendes Ergebnis erhalten:
Code:
ret: 0
bsize: 00001000, frsize: 00000000, blocks: 00400e5e, bfree: 00400e6e, files: 00400e7d, ffree: 00400e8d, fsid: 00000000, 
ret: 0
bsize: 00001000, frsize: 00000008, blocks: 00400e5e, bfree: 00400e6e, files: 00400e7d, ffree: 00400e8d, fsid: 00000000, 
ret: 0
bsize: 00001000, frsize: 00001000, blocks: 00400e5e, bfree: 00400e6e, files: 00400e7d, ffree: 00400e8d, fsid: 00000000, 
ret: 0
bsize: 00001000, frsize: 00001000, blocks: 00400e5e, bfree: 00400e6e, files: 00400e7d, ffree: 00400e8d, fsid: 00000000,
Zudem habe ich folgendes ausgeführt:
Code:
toolchain/target/bin/mipsel-linux-objdump -dr source/target-mipsel_uClibc-0.9.*/samba-3.0.*/source/lib/fsusage.o
source/target-mipsel_uClibc-0.9.29/samba-3.0.37/source/lib/fsusage.o:     file format elf32-tradlittlemips

Disassembly of section .text:

00000000 <adjust_blocks>:
   0:	10a60011 	beq	a1,a2,48 <adjust_blocks+0x48>
   4:	00000000 	nop
   8:	00c5102b 	sltu	v0,a2,a1
   c:	10400006 	beqz	v0,28 <adjust_blocks+0x28>
  10:	00000000 	nop
  14:	00a6001b 	divu	zero,a1,a2
  18:	00c001f4 	teq	a2,zero,0x7
  1c:	00001012 	mflo	v0
  20:	10000009 	b	48 <adjust_blocks+0x48>
  24:	70822002 	mul	a0,a0,v0
  28:	00c5280a 	movz	a1,a2,a1
  2c:	00c5001b 	divu	zero,a2,a1
  30:	00a001f4 	teq	a1,zero,0x7
  34:	24820001 	addiu	v0,a0,1
  38:	00001812 	mflo	v1
  3c:	0043001b 	divu	zero,v0,v1
  40:	006001f4 	teq	v1,zero,0x7
  44:	00002012 	mflo	a0
  48:	03e00008 	jr	ra
  4c:	00801021 	move	v0,a0

00000050 <sys_fsusage>:
  50:	3c1c0000 	lui	gp,0x0
			50: R_MIPS_HI16	_gp_disp
  54:	279c0000 	addiu	gp,gp,0
			54: R_MIPS_LO16	_gp_disp
  58:	0399e021 	addu	gp,gp,t9
  5c:	27bdff70 	addiu	sp,sp,-144
  60:	afbf0088 	sw	ra,136(sp)
  64:	afb30084 	sw	s3,132(sp)
  68:	afb20080 	sw	s2,128(sp)
  6c:	afb1007c 	sw	s1,124(sp)
  70:	afb00078 	sw	s0,120(sp)
  74:	afbc0010 	sw	gp,16(sp)
  78:	8f990000 	lw	t9,0(gp)
			78: R_MIPS_CALL16	statfs64
  7c:	00a09821 	move	s3,a1
  80:	27a50018 	addiu	a1,sp,24
  84:	0320f809 	jalr	t9
  88:	00c09021 	move	s2,a2
  8c:	04410003 	bgez	v0,9c <sys_fsusage+0x4c>
  90:	8fbc0010 	lw	gp,16(sp)
  94:	10000012 	b	e0 <sys_fsusage+0x90>
  98:	2402ffff 	li	v0,-1
  9c:	8f820000 	lw	v0,0(gp)
			9c: R_MIPS_GOT16	.text
  a0:	8fb0001c 	lw	s0,28(sp)
  a4:	24510000 	addiu	s1,v0,0
			a4: R_MIPS_LO16	.text
  a8:	8fa40028 	lw	a0,40(sp)
  ac:	02002821 	move	a1,s0
  b0:	0220c821 	move	t9,s1
  b4:	0320f809 	jalr	t9
  b8:	24060200 	li	a2,512
  bc:	8fa40048 	lw	a0,72(sp)
  c0:	02002821 	move	a1,s0
  c4:	ae420000 	sw	v0,0(s2)
  c8:	0220c821 	move	t9,s1
  cc:	0320f809 	jalr	t9
  d0:	24060200 	li	a2,512
  d4:	8fbc0010 	lw	gp,16(sp)
  d8:	ae620000 	sw	v0,0(s3)
  dc:	00001021 	move	v0,zero
  e0:	8fbf0088 	lw	ra,136(sp)
  e4:	8fb30084 	lw	s3,132(sp)
  e8:	8fb20080 	lw	s2,128(sp)
  ec:	8fb1007c 	lw	s1,124(sp)
  f0:	8fb00078 	lw	s0,120(sp)
  f4:	03e00008 	jr	ra
  f8:	27bd0090 	addiu	sp,sp,144
  fc:	00000000 	nop
Außerdem kannst Du mal die config.cache komplett löschen und dann nur samba erstellen lassen ("make smba-precompiled"), dann diesen neu erstellten Samba ausprobieren.
Kannst du mir das noch etwas näher erklären? Die genaue Abfolge der Kommandos ist mir nicht ganz klar.

Gruß
Gerd
 

Anhänge

  • bigfile.txt
    14.5 KB · Aufrufe: 2
  • smallfile.txt
    29.7 KB · Aufrufe: 2
Das Problem mit dem statfs sollte bereits gelöst sein. Auf jeden Fall hast Du schon den aktuellen Patch, der statfs64 aufruft.

In bigfile.txt ist nicht einmal zu erkennen, daß ein rename versucht wird. Auch ist die Datei viel kürzer. Entweder ist der strace zu früh abgebrochen, oder das Problem tritt schon viel früher auf.
 
Hi Ralf,
ich habe nochmals mehrfach das Umbenennen der Datei bigfile mit strace geloggt und nach dem gescheiterten Umbenennen ca. 30 Sekunden gewartet, bevor ich strace abgebrochen habe. In keinem Log taucht weder der neue Dateiname noch der Aufruf der Funktion rename auf.
Kann man samba nicht einen höheren Log Level beibringen, um detaillierte Fehlermeldungen zu erhalten? Wenn man unter den erweiterten Samba Einstellungen z.B. Log Level = 3 eingibt, wird dieser Parameter zwar akzeptiert, aber er zeigt keine Wirkung.
Halten wir mal fest: Bei mir funktioniert der Samba Server aus dem Original AVM Image unter Windows auch mit Dateien > 2GB. Mit dem Freetz Samba scheitern Operationen für Dateien > 2GB unter Windows. Mit einem Linux Client dagegen gibt es keine Probleme. Und das wohlgemerkt nur in meiner Konfiguration, das ist alles schon sehr merkwürdig.
Ich hänge trotzdem noch einmal neue strace Logs für bigfile und smallfile an. Vielleicht hat doch noch jemand eine Idee.

Gruß
Gerd
 

Anhänge

  • bigfile.txt
    16 KB · Aufrufe: 1
  • smallfile.txt
    29.4 KB · Aufrufe: 0
Das spricht dafür, daß der Windows Client erst gar nicht den Befehl zum umbenennen sendet.
Bei AVM werden alle Log-Funktionen entfernt, vermutlich aus Platzgründen. Schau mal,ob ein entsprechender Path auch bei Freetz angewendet wird und entferne ihn ggf.
 
Im 200-reduce-size.patch wird bei uns der Max loglevel auf 2 gesetzt...

MfG Oliver
 
Hallo Ralf,
ich verstehe nicht ganz, welchen Pfad meinst Du?

Gruß
Gerd
 
Hallo Oliver,
wo finde ich denn den 200-reduce-size.patch?

Gruß
Gerd
 
...
wo finde ich denn den 200-reduce-size.patch?
In deinem Build-System:
Code:
:~/myfreetz/freetz5711/freetz-trunk> [COLOR="Red"]find[/COLOR] ~/myfreetz/freetz5711/[COLOR="Red"]freetz-trunk[/COLOR] -iname '200[COLOR="Red"]*[/COLOR]reduce[COLOR="Red"]*[/COLOR]size.patch[COLOR="Red"]*[/COLOR]'
/home/gm/myfreetz/freetz5711/freetz-trunk/make/samba/patches/.svn/text-base/[B]200-reduce_size.patch[/B].svn-base
/home/gm/myfreetz/freetz5711/freetz-trunk/make/samba/patches/[B]200-reduce_size.patch[/B]
/home/gm/myfreetz/freetz5711/freetz-trunk/make/util-linux-ng/patches/.svn/text-base/[B]200-reduce_size.patch[/B].svn-base
/home/gm/myfreetz/freetz5711/freetz-trunk/make/util-linux-ng/patches/[B]200-reduce_size.patch[/B]
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,300
Beiträge
2,249,713
Mitglieder
373,904
Neuestes Mitglied
Elemir
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.