Hi all, I've run into an issue and am wondering if folks can give some advice on how to resolve it. Basically Samba appears to be getting confused, providing some other file's contents. Initially I saw this on a Windows host that has mounted a share from CentOs, but I've been able to repro it on the CentOs host using a self-mount. Here's my test script: #!/usr/bin/perl use File::Temp qw( tempfile ); use strict; $| = 1; my $local_grid_share = '/grid/samba_stress_test'; my $mounted_grid_share = '/root/grid/samba_stress_test'; while (1) { my $content1 = rand() x 5 . "\n"; my ($fh, $filepath) = tempfile( DIR => $local_grid_share ); print $fh $content1; close $fh; system("chown xen $filepath"); my ($filename) = $filepath =~ /.*\/(.*)/; print "----\n$filename... "; if (-f "$mounted_grid_share/$filename") { open IN, "$mounted_grid_share/$filename"; local $/ = undef; my $content2 = <IN>; close IN; if ($content1 eq $content2) { print "Same!\n$filepath : $content1$mounted_grid_share/$filename: $content2"; } else { print "Different!\n$filepath : $content1$mounted_grid_share/$filename: $content2"; exit; } } else { print "File is missing!\n"; exit; } unlink $filepath; } Here's the mount command and an illustration of the problem: # ifconfig | grep inet.addr | grep -v 127.0.0.1 inet addr:10.0.0.11 Bcast:10.0.0.255 Mask:255.255.255.0 # mount -t cifs -ousername=the_user,password=the_password //10.0.0.11/grid /root/grid # mkdir /grid/samba_stress_test; chown xen /grid/samba_stress_test # perl samba_stress_test.pl <snip a lot of successful comparisons> udCVYFNkc5... Same! /grid/samba_stress_test/udCVYFNkc5 : 0.07392498237819470.07392498237819470.07392498237819470.07392498237819470.0739249823781947 /root/grid/samba_stress_test/udCVYFNkc5: 0.07392498237819470.07392498237819470.07392498237819470.07392498237819470.0739249823781947 ---- uETPmRzm99... Different! /grid/samba_stress_test/uETPmRzm99 : 0.9774832438332160.9774832438332160.9774832438332160.9774832438332160.977483243833216 /root/grid/samba_stress_test/uETPmRzm99: 0.07392498237819470.07392498237819470.07392498237819470.07392498237819470.073924982378# So the new file supposedly has the content of the previous *deleted* file. Note that sometimes the content is truncated. (See above -- the "#" for the next prompt is at the end of the previous line because there's no newline). If I re-share the mount that's on the Windows machine, and mount it in this Linux machine, then it consistently repros on the second iteration. With a little effort I can get the file from the Windows machine and compare it, if that's helpful. Here is some information about my setup: # cat /etc/centos-release CentOS release 6.3 (Final) # yum list | grep '^samba' samba.x86_64 3.5.10-125.el6 @base samba-client.x86_64 3.5.10-125.el6 @base samba-common.x86_64 3.5.10-125.el6 @base samba-winbind-clients.x86_64 3.5.10-125.el6 @base samba4-libs.x86_64 4.0.0-23.alpha11.el6 @base/$releasever samba.x86_64 3.6.9-151.el6 base samba-client.x86_64 3.6.9-151.el6 base samba-common.i686 3.6.9-151.el6 base samba-common.x86_64 3.6.9-151.el6 base samba-doc.x86_64 3.6.9-151.el6 base samba-domainjoin-gui.x86_64 3.6.9-151.el6 base samba-swat.x86_64 3.6.9-151.el6 base samba-winbind.x86_64 3.6.9-151.el6 base samba-winbind-clients.i686 3.6.9-151.el6 base samba-winbind-clients.x86_64 3.6.9-151.el6 base samba-winbind-devel.i686 3.6.9-151.el6 base samba-winbind-devel.x86_64 3.6.9-151.el6 base samba-winbind-krb5-locator.x86_64 3.6.9-151.el6 base samba4.x86_64 4.0.0-55.el6.rc4 base samba4-client.x86_64 4.0.0-55.el6.rc4 base samba4-common.x86_64 4.0.0-55.el6.rc4 base samba4-dc.x86_64 4.0.0-55.el6.rc4 base samba4-dc-libs.x86_64 4.0.0-55.el6.rc4 base samba4-devel.i686 4.0.0-23.alpha11.el6 base samba4-devel.x86_64 4.0.0-55.el6.rc4 base samba4-libs.i686 4.0.0-23.alpha11.el6 base samba4-libs.x86_64 4.0.0-55.el6.rc4 base samba4-pidl.x86_64 4.0.0-55.el6.rc4 base samba4-python.x86_64 4.0.0-55.el6.rc4 base samba4-swat.x86_64 4.0.0-55.el6.rc4 base samba4-test.x86_64 4.0.0-55.el6.rc4 base samba4-winbind.x86_64 4.0.0-55.el6.rc4 base samba4-winbind-clients.x86_64 4.0.0-55.el6.rc4 base samba4-winbind-krb5-locator.x86_64 4.0.0-55.el6.rc4 base Share settings from /etc/samba/smb.conf: [grid] comment = Grid Share browseable = yes writeable = yes level2 oplocks = no oplocks = no path = /grid value user = the_user
On Thu, May 30, 2013 at 11:20:24AM -0400, David Coppit wrote:> Hi all, > > I've run into an issue and am wondering if folks can give some advice > on how to resolve it. > > Basically Samba appears to be getting confused, providing some other > file's contents. > > Initially I saw this on a Windows host that has mounted a share from > CentOs, but I've been able to repro it on the CentOs host using a > self-mount.Sorry, I don't know perl enough to actually see the sequence of events exactly enough. Can you explain for really stupid people what this does and where the problem is? It might help if you could send us an strace of that script producing the error together with a network trace. Also, I am a little confused about the scenario: You are saying that you saw this on a Windows host that has mounted a CentOs share? This means that the cifs kernel module is not involved at all here? With best regards, Volker Lendecke -- SerNet GmbH, Bahnhofsallee 1b, 37081 G?ttingen phone: +49-551-370000-0, fax: +49-551-370000-9 AG G?ttingen, HRB 2816, GF: Dr. Johannes Loxen http://www.sernet.de, mailto:kontakt at sernet.de