When saving a domain onto disk, libvirt injects this iohelper process in between to be able to do aligned writes (these are important when by-passing kernel caches). This process basically reads data from qemu into internal buffer and write it into passed file.
With right combination of filesystem where the destination file resides and bad timing it was possible that data was not written and kernel did not report out of space error (ENOSPC). For instance, NFS polls for the free space on NFS server, so data lives in kernel cache and writing application has no clue about the error. The error is reported when kernel decides to send data to NFS server, however the iohelper process may have already exited meanwhile.
The proper fix is to issue fdatasync() which enforce data to be actually written onto disk. This will catch any write error (even ENOSPC).
If there is any write error, it can be caught and reported not ignored as before.
This bug has been copied from bug #866369 and has been proposed
to be backported to 6.3 z-stream (EUS).
We need to backport 2 patches:
Moving to POST:
Hi, Yaniv Kaul
This bug our qe can not reprodue it ,could you help me to verify this bug and by Friday EST ?
Thanks very much
(In reply to comment #8)
> Hi, Yaniv Kaul
> This bug our qe can not reprodue it ,could you help me to verify this bug
> and by Friday EST ?
> Thanks very much
Hi, Dafna will verify this bug.
verified on libvirt-0.9.10-21.el6_3.6
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.