Bug 670539 - Block devices don't implement correct flush error handling
Summary: Block devices don't implement correct flush error handling
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.1
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: rc
: ---
Assignee: Kevin Wolf
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-18 15:54 UTC by Kevin Wolf
Modified: 2011-05-19 13:00 UTC (History)
5 users (show)

Fixed In Version: qemu-kvm-0.12.1.2-2.135.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-05-19 11:34:13 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2011:0534 0 normal SHIPPED_LIVE Important: qemu-kvm security, bug fix, and enhancement update 2011-05-19 11:20:36 UTC

Description Kevin Wolf 2011-01-18 15:54:44 UTC
The handling of errors during a flush command is wrong in IDE and virtio-blk: IDE completely ignores flush errors and always returns success to the guest. Both IDE and virtio-blk don't respect werror=stop if the write error occurs during a flush.

Comment 5 Shirley Zhou 2011-02-16 07:16:44 UTC
Kevin, Please provide some notes how QE can test this issue. Thanks.

Comment 6 Kevin Wolf 2011-02-16 09:41:54 UTC
This is a corner case. It's unlikely that you ever trigger this under normal circumstances, because you'll always have writes before and after the flush that will fail as well.

I think we can create an unusual setup where you could notice the difference. Let's try this: Do something like the usual I/O error tests, e.g. create some I/O and shutdown the NFS server. To maximize the amount of flushes, try using dd with conv=fsync for the I/O. Start qemu with werror=ignore,rerror=ignore in order to completely ignore the read/write errors that will occur so that even without this fix only flushes remain visible. Check dmesg for error messages in the guest. They are expected to be there without the patch, and they should disappear with the patch applied.

And after this better not restart the NFS server while the VM is still running. Otherwise be prepared for the guest filesystem to be broken, werror=ignore is dangerous.

Comment 8 Miya Chen 2011-03-17 09:08:32 UTC
move to verified based on comment#7

Comment 9 errata-xmlrpc 2011-05-19 11:34:13 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0534.html

Comment 10 errata-xmlrpc 2011-05-19 13:00:57 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0534.html


Note You need to log in before you can comment on or make changes to this bug.