Activity log for bug #1368815

Date Who What changed Old value New value Message
2014-09-12 14:58:23 Michael Steffens bug added bug
2014-09-12 15:08:02 Michael Steffens bug task added nova
2014-09-12 15:13:47 Matt Riedemann nova: status New Triaged
2014-09-12 15:13:51 Matt Riedemann nova: importance Undecided Medium
2014-09-14 10:23:56 gustavo panizzo bug added subscriber gustavo panizzo
2014-09-15 05:16:43 Tony Breeds bug added subscriber Tony Breeds
2014-09-15 15:15:38 Matt Riedemann nova: importance Medium High
2014-09-15 18:27:33 Serge Hallyn bug task added qemu (Ubuntu)
2014-09-15 18:27:58 Serge Hallyn qemu (Ubuntu): status New Triaged
2014-09-15 18:28:03 Serge Hallyn qemu (Ubuntu): importance Undecided High
2014-09-15 18:28:13 Serge Hallyn nominated for series Ubuntu Trusty
2014-09-15 18:28:13 Serge Hallyn bug task added qemu (Ubuntu Trusty)
2014-09-15 18:28:22 Serge Hallyn qemu (Ubuntu Trusty): status New Triaged
2014-09-15 18:28:27 Serge Hallyn qemu (Ubuntu Trusty): importance Undecided High
2014-09-15 19:15:40 Marc Deslauriers bug added subscriber Marc Deslauriers
2014-09-16 19:50:50 Jamie Strandboge bug added subscriber Jamie Strandboge
2014-09-30 04:49:39 Tony Breeds nova: assignee Tony Breeds (o-tony)
2014-09-30 04:50:05 Tony Breeds qemu: status New In Progress
2014-09-30 04:50:05 Tony Breeds qemu: assignee Tony Breeds (o-tony)
2014-09-30 04:50:30 Tony Breeds qemu (Ubuntu): assignee Tony Breeds (o-tony)
2014-09-30 04:52:07 Tony Breeds nova: status Triaged In Progress
2014-09-30 04:52:31 Tony Breeds qemu (Ubuntu): assignee Tony Breeds (o-tony)
2014-10-23 18:24:20 Serge Hallyn nominated for series Ubuntu Utopic
2014-10-23 18:24:20 Serge Hallyn bug task added qemu (Ubuntu Utopic)
2014-10-23 18:24:20 Serge Hallyn nominated for series Ubuntu Vivid
2014-10-23 18:24:20 Serge Hallyn bug task added qemu (Ubuntu Vivid)
2014-10-27 05:27:36 Launchpad Janitor qemu (Ubuntu Vivid): status New Confirmed
2014-10-30 06:40:38 Launchpad Janitor qemu (Ubuntu Vivid): status Confirmed Fix Released
2014-11-20 22:23:28 Serge Hallyn description -- Found in releases qemu-2.0.0, qemu-2.0.2, qemu-2.1.0. Tested on Ubuntu 14.04 using Ext4 filesystems. The command qemu-img convert -O raw inputimage.qcow2 outputimage.raw intermittently creates corrupted output images, when the input image is not yet fully synchronized to disk. While the issue has actually been discovered in operation of of OpenStack nova, it can be reproduced "easily" on command line using cat $SRC_PATH > $TMP_PATH && $QEMU_IMG_PATH convert -O raw $TMP_PATH $DST_PATH && cksum $DST_PATH on filesystems exposing this behavior. (The difficult part of this exercise is to prepare a filesystem to reliably trigger this race. On my test machine some filesystems are affected while other aren't, and unfortunately I haven't found the relevant difference between them, yet. Possible it's timing issues completely out of userspace control ...) The root cause, however, is the same as in http://lists.gnu.org/archive/html/coreutils/2011-04/msg00069.html and it can be solved the same way as suggested in http://lists.gnu.org/archive/html/coreutils/2011-04/msg00102.html In qemu, file block/raw-posix.c use the FIEMAP_FLAG_SYNC, i.e change f.fm.fm_flags = 0; to f.fm.fm_flags = FIEMAP_FLAG_SYNC; As discussed in the thread mentioned above, retrieving a page cache coherent map of file extents is possible only after fsync on that file. See also https://bugs.launchpad.net/nova/+bug/1350766 In that bug report filed against nova, fsync had been suggested to be performed by the framework invoking qemu-img. However, as the choice of fiemap -- implying this otherwise unneeded fsync of a temporary file -- is not made by the caller but by qemu-img, I agree with the nova bug reviewer's objection to put it into nova. The fsync should instead be triggered by qemu-img utilizing the FIEMAP_FLAG_SYNC, specifically intended for that purpose. ========================================================== Impact: occasional qcow2 corruption Test case: see the qemu-img command below Regression potential: this cherrypicks a patch from upstream to a not-insignificantly older qemu source tree. While the cherrypick seems sane, it's possible that there are subtle interactions with the other delta. I'd really like for a full qa-regression-test qemu testcase to be run against this package. ========================================================== -- Found in releases qemu-2.0.0, qemu-2.0.2, qemu-2.1.0. Tested on Ubuntu 14.04 using Ext4 filesystems. The command qemu-img convert -O raw inputimage.qcow2 outputimage.raw intermittently creates corrupted output images, when the input image is not yet fully synchronized to disk. While the issue has actually been discovered in operation of of OpenStack nova, it can be reproduced "easily" on command line using cat $SRC_PATH > $TMP_PATH && $QEMU_IMG_PATH convert -O raw $TMP_PATH $DST_PATH && cksum $DST_PATH on filesystems exposing this behavior. (The difficult part of this exercise is to prepare a filesystem to reliably trigger this race. On my test machine some filesystems are affected while other aren't, and unfortunately I haven't found the relevant difference between them, yet. Possible it's timing issues completely out of userspace control ...) The root cause, however, is the same as in http://lists.gnu.org/archive/html/coreutils/2011-04/msg00069.html and it can be solved the same way as suggested in http://lists.gnu.org/archive/html/coreutils/2011-04/msg00102.html In qemu, file block/raw-posix.c use the FIEMAP_FLAG_SYNC, i.e change f.fm.fm_flags = 0; to f.fm.fm_flags = FIEMAP_FLAG_SYNC; As discussed in the thread mentioned above, retrieving a page cache coherent map of file extents is possible only after fsync on that file. See also https://bugs.launchpad.net/nova/+bug/1350766 In that bug report filed against nova, fsync had been suggested to be performed by the framework invoking qemu-img. However, as the choice of fiemap -- implying this otherwise unneeded fsync of a temporary file -- is not made by the caller but by qemu-img, I agree with the nova bug reviewer's objection to put it into nova. The fsync should instead be triggered by qemu-img utilizing the FIEMAP_FLAG_SYNC, specifically intended for that purpose.
2014-11-20 22:23:50 Serge Hallyn bug added subscriber Ubuntu Stable Release Updates Team
2014-11-25 11:44:37 Kevin Wolf description ========================================================== Impact: occasional qcow2 corruption Test case: see the qemu-img command below Regression potential: this cherrypicks a patch from upstream to a not-insignificantly older qemu source tree. While the cherrypick seems sane, it's possible that there are subtle interactions with the other delta. I'd really like for a full qa-regression-test qemu testcase to be run against this package. ========================================================== -- Found in releases qemu-2.0.0, qemu-2.0.2, qemu-2.1.0. Tested on Ubuntu 14.04 using Ext4 filesystems. The command qemu-img convert -O raw inputimage.qcow2 outputimage.raw intermittently creates corrupted output images, when the input image is not yet fully synchronized to disk. While the issue has actually been discovered in operation of of OpenStack nova, it can be reproduced "easily" on command line using cat $SRC_PATH > $TMP_PATH && $QEMU_IMG_PATH convert -O raw $TMP_PATH $DST_PATH && cksum $DST_PATH on filesystems exposing this behavior. (The difficult part of this exercise is to prepare a filesystem to reliably trigger this race. On my test machine some filesystems are affected while other aren't, and unfortunately I haven't found the relevant difference between them, yet. Possible it's timing issues completely out of userspace control ...) The root cause, however, is the same as in http://lists.gnu.org/archive/html/coreutils/2011-04/msg00069.html and it can be solved the same way as suggested in http://lists.gnu.org/archive/html/coreutils/2011-04/msg00102.html In qemu, file block/raw-posix.c use the FIEMAP_FLAG_SYNC, i.e change f.fm.fm_flags = 0; to f.fm.fm_flags = FIEMAP_FLAG_SYNC; As discussed in the thread mentioned above, retrieving a page cache coherent map of file extents is possible only after fsync on that file. See also https://bugs.launchpad.net/nova/+bug/1350766 In that bug report filed against nova, fsync had been suggested to be performed by the framework invoking qemu-img. However, as the choice of fiemap -- implying this otherwise unneeded fsync of a temporary file -- is not made by the caller but by qemu-img, I agree with the nova bug reviewer's objection to put it into nova. The fsync should instead be triggered by qemu-img utilizing the FIEMAP_FLAG_SYNC, specifically intended for that purpose. ========================================================== Impact: occasional image corruption (any format on local filesystem) Test case: see the qemu-img command below Regression potential: this cherrypicks a patch from upstream to a not-insignificantly older qemu source tree. While the cherrypick seems sane, it's possible that there are subtle interactions with the other delta. I'd really like for a full qa-regression-test qemu testcase to be run against this package. ========================================================== -- Found in releases qemu-2.0.0, qemu-2.0.2, qemu-2.1.0. Tested on Ubuntu 14.04 using Ext4 filesystems. The command   qemu-img convert -O raw inputimage.qcow2 outputimage.raw intermittently creates corrupted output images, when the input image is not yet fully synchronized to disk. While the issue has actually been discovered in operation of of OpenStack nova, it can be reproduced "easily" on command line using   cat $SRC_PATH > $TMP_PATH && $QEMU_IMG_PATH convert -O raw $TMP_PATH $DST_PATH && cksum $DST_PATH on filesystems exposing this behavior. (The difficult part of this exercise is to prepare a filesystem to reliably trigger this race. On my test machine some filesystems are affected while other aren't, and unfortunately I haven't found the relevant difference between them, yet. Possible it's timing issues completely out of userspace control ...) The root cause, however, is the same as in   http://lists.gnu.org/archive/html/coreutils/2011-04/msg00069.html and it can be solved the same way as suggested in   http://lists.gnu.org/archive/html/coreutils/2011-04/msg00102.html In qemu, file block/raw-posix.c use the FIEMAP_FLAG_SYNC, i.e change     f.fm.fm_flags = 0; to     f.fm.fm_flags = FIEMAP_FLAG_SYNC; As discussed in the thread mentioned above, retrieving a page cache coherent map of file extents is possible only after fsync on that file. See also   https://bugs.launchpad.net/nova/+bug/1350766 In that bug report filed against nova, fsync had been suggested to be performed by the framework invoking qemu-img. However, as the choice of fiemap -- implying this otherwise unneeded fsync of a temporary file -- is not made by the caller but by qemu-img, I agree with the nova bug reviewer's objection to put it into nova. The fsync should instead be triggered by qemu-img utilizing the FIEMAP_FLAG_SYNC, specifically intended for that purpose.
2014-11-25 17:22:14 Chris J Arges qemu (Ubuntu Utopic): status Triaged Fix Committed
2014-11-25 17:22:22 Chris J Arges bug added subscriber SRU Verification
2014-11-25 17:22:24 Chris J Arges tags fiemap nova openstack qemu-img fiemap nova openstack qemu-img verification-needed
2014-11-25 17:23:50 Chris J Arges qemu (Ubuntu Trusty): status Triaged Fix Committed
2014-12-01 08:32:59 Michael Steffens tags fiemap nova openstack qemu-img verification-needed fiemap nova openstack qemu-img verification-done-trusty
2014-12-03 05:14:01 Mathew Hodson tags fiemap nova openstack qemu-img verification-done-trusty fiemap nova openstack qemu-img verification-done-trusty verification-needed-utopic
2014-12-08 18:40:35 Brian Murray removed subscriber Ubuntu Stable Release Updates Team
2014-12-08 18:46:11 Launchpad Janitor qemu (Ubuntu Trusty): status Fix Committed Fix Released
2014-12-10 18:06:14 Vladimir Kuklin bug task added mos
2014-12-10 18:07:09 Vladimir Kuklin mos: status New Triaged
2014-12-10 18:07:13 Vladimir Kuklin mos: importance Undecided Critical
2014-12-10 18:07:21 Vladimir Kuklin mos: assignee MOS Linux (mos-linux)
2014-12-10 18:07:32 Vladimir Kuklin mos: milestone 6.0
2014-12-10 20:49:58 Chris J Arges tags fiemap nova openstack qemu-img verification-done-trusty verification-needed-utopic fiemap nova openstack qemu-img verification-done-trusty verification-done-utopic
2014-12-10 20:50:00 Dmitry Mescheryakov bug task deleted mos
2014-12-11 17:53:20 Launchpad Janitor qemu (Ubuntu Utopic): status Fix Committed Fix Released
2014-12-11 20:11:01 Vish Ishaya bug task added cinder
2014-12-12 01:56:48 Tony Breeds cinder: assignee Tony Breeds (o-tony)
2014-12-12 01:58:00 Tony Breeds cinder: status New In Progress
2014-12-12 03:28:20 OpenStack Infra cinder: assignee Tony Breeds (o-tony) John Griffith (john-griffith)
2014-12-15 16:26:16 Jay Bryant cinder: importance Undecided High
2014-12-16 12:31:06 Alexei Sheplyakov attachment added 0500-block-raw-posix-Try-both-FIEMAP-and-SEEK_HOLE.patch https://bugs.launchpad.net/qemu/+bug/1368815/+attachment/4282118/+files/0500-block-raw-posix-Try-both-FIEMAP-and-SEEK_HOLE.patch
2014-12-16 12:33:31 Alexei Sheplyakov attachment added 0502-block-raw-posix-use-seek_hole-ahead-of-fiemap.patch https://bugs.launchpad.net/qemu/+bug/1368815/+attachment/4282119/+files/0502-block-raw-posix-use-seek_hole-ahead-of-fiemap.patch
2014-12-23 00:44:54 OpenStack Infra cinder: assignee John Griffith (john-griffith) Tony Breeds (o-tony)
2015-01-26 20:32:48 Mike Perez cinder: status In Progress Triaged
2015-01-26 20:32:55 Mike Perez cinder: assignee Tony Breeds (o-tony)
2015-01-26 22:27:52 Tony Breeds cinder: assignee Tony Breeds (o-tony)
2015-01-27 17:23:16 Tony Breeds nova: milestone kilo-2
2015-02-05 10:43:48 Thierry Carrez nova: milestone kilo-2 kilo-3
2015-02-12 15:09:35 Davanum Srinivas (DIMS) nova: status In Progress Won't Fix
2015-02-24 09:25:17 Thierry Carrez nova: milestone kilo-3
2015-07-26 20:10:08 Atsushi SAKAI bug added subscriber Atsushi SAKAI
2015-10-30 01:03:07 Eric Harney cinder: status Triaged Won't Fix
2016-07-19 08:14:18 Thomas Huth qemu: status In Progress Fix Released