From: Stefan Hajnoczi <1882241@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: Re: [Bug 1882241] [NEW] file transfer over cifs to 64bit guest corrupts large files
Date: Wed, 17 Jun 2020 10:32:06 -0000 [thread overview]
Message-ID: <20200617103206.GA1728005@stefanha-x1.localdomain> (raw)
Message-ID: <20200617103206.gX4QJ0pr5J5E5IfaeYqjbavV-wVmL4hV2vuNbiqOx2s@z> (raw)
In-Reply-To: 159136023930.32294.17616621945608188739.malonedeb@gac.canonical.com
On Fri, Jun 05, 2020 at 12:30:39PM -0000, timsoft wrote:
> Public bug reported:
>
> qemu 4.0 compiled fom source.
> vm called by
> qemu-system-x86_64 -cpu qemu64 -smp 4 -m 4G -drive file=/data/images/slack14.2_64bit_test.qcow2,format=qcow2 -cdrom /mnt/smb1/slackware/iso/slackware64-14.2-install-dvd.iso -boot c -net nic,macaddr=02:00:00:11:11:17,model=i82551 -net bridge,br=br0 -enable-kvm -k en-gb -display vnc=:3 -monitor telnet:localhost:7103,server,nowait,nodelay
>
> copying large files eg 2.4gb or reading them on a cifs mount in the guest causes corruption every time. For smaller files 40-60mb corruption is more than 50% of the time. tested by md5sum on cifs server, or on host machine vs. on guest vm.
> corruption is seen only with 64bit guest using cifs with i82551 emulated network device
> ie. 32bit guest using cifs with i82551 emulated network device gives no corruption.
>
> changing the emulated device to vmxnet3 removes the data corruption (see
> below)
>
> qemu-system-x86_64 -cpu qemu64 -smp 4 -m 4G -drive
> file=/data/images/slack14.2_64bit_test.qcow2,format=qcow2 -cdrom
> /mnt/smb1/slackware/iso/slackware64-14.2-install-dvd.iso -boot c -net
> nic,macaddr=02:00:00:11:11:17,model=vmxnet3 -net bridge,br=br0 -enable-
> kvm -k en-gb -display vnc=:3 -monitor
> telnet:localhost:7103,server,nowait,nodelay
>
> this corruption is repeatable. ie. I created new vm, call using top example, installed 64bit linux, mounted cifs share and copied 2.4gb file to /tmp then run md5sum "filecopied"
> the md5sum is different every time. copy same file to the host, or to a 32bit guest with the same virtual network device and bridge and md5sums are correct. The host pysical network adapter is
> lspci|grep Ether
> 1e:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
>
> physically connected via gigabit ethernet to cifs server (via gigabit
> switch)
Not a solution but some comments:
1. As a sanity-check you could try "nc <guest-ip> 1234 </path/to/file" on
the host and "nc -l -p 1234 >/tmp/file" in the guest. Netcat simply
sends/receives data over a TCP connection (it's a much simpler test
than CIFS). Is the checksum okay?
2. I don't know the CIFS network protocol, but if Wireshark can dissect
it then you could compare the flows between the vmxnet3 and the
i82551. This is only feasible if Wireshark can produce an unencrypted
conversation and the CIFS protocol doesn't have many protocol header
fields that differ between two otherwise identical sessions.
3. virtio-net is the most widely used and high-performance NIC model.
Other emulated NIC models are mainly there for very old guests that
lack virtio guest drivers.
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1882241
Title:
file transfer over cifs to 64bit guest corrupts large files
Status in QEMU:
New
Bug description:
qemu 4.0 compiled fom source.
vm called by
qemu-system-x86_64 -cpu qemu64 -smp 4 -m 4G -drive file=/data/images/slack14.2_64bit_test.qcow2,format=qcow2 -cdrom /mnt/smb1/slackware/iso/slackware64-14.2-install-dvd.iso -boot c -net nic,macaddr=02:00:00:11:11:17,model=i82551 -net bridge,br=br0 -enable-kvm -k en-gb -display vnc=:3 -monitor telnet:localhost:7103,server,nowait,nodelay
copying large files eg 2.4gb or reading them on a cifs mount in the guest causes corruption every time. For smaller files 40-60mb corruption is more than 50% of the time. tested by md5sum on cifs server, or on host machine vs. on guest vm.
corruption is seen only with 64bit guest using cifs with i82551 emulated network device
ie. 32bit guest using cifs with i82551 emulated network device gives no corruption.
changing the emulated device to vmxnet3 removes the data corruption
(see below)
qemu-system-x86_64 -cpu qemu64 -smp 4 -m 4G -drive
file=/data/images/slack14.2_64bit_test.qcow2,format=qcow2 -cdrom
/mnt/smb1/slackware/iso/slackware64-14.2-install-dvd.iso -boot c -net
nic,macaddr=02:00:00:11:11:17,model=vmxnet3 -net bridge,br=br0
-enable-kvm -k en-gb -display vnc=:3 -monitor
telnet:localhost:7103,server,nowait,nodelay
this corruption is repeatable. ie. I created new vm, call using top example, installed 64bit linux, mounted cifs share and copied 2.4gb file to /tmp then run md5sum "filecopied"
the md5sum is different every time. copy same file to the host, or to a 32bit guest with the same virtual network device and bridge and md5sums are correct. The host pysical network adapter is
lspci|grep Ether
1e:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
physically connected via gigabit ethernet to cifs server (via gigabit
switch)
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1882241/+subscriptions
next prev parent reply other threads:[~2020-06-17 10:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 12:30 [Bug 1882241] [NEW] file transfer over cifs to 64bit guest corrupts large files timsoft
2020-06-17 10:32 ` Stefan Hajnoczi [this message]
2020-06-17 10:32 ` Stefan Hajnoczi
2020-06-17 14:55 ` [Bug 1882241] " timsoft
2020-06-23 12:56 ` Stefan Hajnoczi
2020-06-23 12:56 ` Stefan Hajnoczi
2021-05-06 17:27 ` Thomas Huth
2021-07-06 4:17 ` Launchpad Bug Tracker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200617103206.GA1728005@stefanha-x1.localdomain \
--to=1882241@bugs.launchpad.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).