Data Corruption bug with Samba's vfs_iouring and Linux 5.6.7/5.7rc3

Anoop C S anoopcs at cryptolab.net
Wed May 6 10:23:26 UTC 2020


On Tue, 2020-05-05 at 10:48 -0700, Jeremy Allison via samba-technical
wrote:
> On Tue, May 05, 2020 at 11:39:14AM -0600, Jens Axboe wrote:
> > > I'll try and see if I can get an arch binary build that has the
> > > vfs_io_uring module and reproduce.
> > 
> > Got that done, and I can now mount it on Linux. Been trying pretty
> > hard to trigger any corruptions on reads, but it works for me.
> > Checked
> > that we see short reads, and we do, and that it handles it just
> > fine.
> > So pretty blank right now on what this could be.
> > 
> > FWIW, I'm mounting on Linux as:
> > 
> > # mount -t cifs -o ro,guest //arch/data /smb
> 
> The reporter claims this only happens with
> a Windows client, as the Linux and Samba libsmb
> clients don't pipeline the reads in the same
> way for multiple files the same way that Windows
> does.
> 
> Here is the bug report with all the details I've
> managed to get out of the original reporter:
> 
> https://bugzilla.samba.org/show_bug.cgi?id=14361
> 
> I also can't reproduce the data corruption, even
> from a Windows client although I've only tried
> so far on my home Ubuntu 19.04 kernel 5.3.0-51-generic #44-Ubuntu SMP
> box.
> 
> I tried running 2 powershell processes on the
> Windows client and doing a copy in both of them
> to ensure we are opening multiple files simultaneously
> and going through the io_uring module (which I
> saw happening by adding debug statements) but
> I never see corruption.
> 
> I'm planning to try running against a Fedora32
> VM next, as that's case the reporter claims will
> reproduce the issue.

I could reproduce the difference in SHA256 checksum after copying a
directory with 100 copies of test file(provided by reporter) from
io_uring VFS module enabled share using Windows explorer(right-click-
>copy/paste). Only 5 out of 100 files had correct checksum after copy
operation :-/

Issue is *NOT* seen with `Copy-Item` powershell command or with
`smbclient` utility using "mget".

Whereas copy from a share without io_uring VFS module didn't show any
SHA256 checksum difference using Windows explorer or `Copy-Item`
powershell command or `smbclient` utility.

Following is my configuration:
OS: Fedora 32
Kernel: 5.6.8
Samba: master
liburing: 0.5
Client: Win 10, build 1909
testparm_s:
# Global parameters
[global]
	clustering = Yes
	load printers = No
	log file = /usr/local/var/log/samba/log.%I
	netbios name = SMB-CLUSTER
	security = USER
	server string = Samba Server
	idmap config * : backend = tdb


[local-ext4]
	comment = For samba share of local ext4
	path = /mnt/ext4/


[local-ext4-io-uring]
	comment = For samba share of local ext4
	path = /mnt/ext4/
	vfs objects = io_uring


-Anoop C S




More information about the samba-technical mailing list