)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c82aae091f69efed45d427629544049782ded22","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Details"},{"line_number":41,"context_line":"-------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Nova commit e6ce9557f8 (\"qemu-img do not use cache\u003dnone if no O_DIRECT"},{"line_number":44,"context_line":"support\") was introduced to make instances boot on filesystems that"},{"line_number":45,"context_line":"don\u0027t support \u0027O_DIRECT\u0027 (which bypasses the host page cache and flushes"},{"line_number":46,"context_line":"data directly to the disk), such as \u0027tmpfs\u0027.  In doing so it introduced"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_b6df450b","line":43,"updated":"2019-03-18 11:07:05.000000000","message":"Could you please reference the whole SHA-1 and not the short one ?","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e2c5ed5cbfa51676b3fa4af750b4eb11d45b6afd","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Details"},{"line_number":41,"context_line":"-------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Nova commit e6ce9557f8 (\"qemu-img do not use cache\u003dnone if no O_DIRECT"},{"line_number":44,"context_line":"support\") was introduced to make instances boot on filesystems that"},{"line_number":45,"context_line":"don\u0027t support \u0027O_DIRECT\u0027 (which bypasses the host page cache and flushes"},{"line_number":46,"context_line":"data directly to the disk), such as \u0027tmpfs\u0027.  In doing so it introduced"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_a7162da7","line":43,"in_reply_to":"5fc1f717_511f0b07","updated":"2019-03-18 13:27:12.000000000","message":"Sure, but now you provided the full SHA-1, we can see all the changes related to it :-)\n\nI574be2b629aaff23556e25f8db0d740105be6f07","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"fe2eda1b595933be875febb34270381abbd702d1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Details"},{"line_number":41,"context_line":"-------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Nova commit e6ce9557f8 (\"qemu-img do not use cache\u003dnone if no O_DIRECT"},{"line_number":44,"context_line":"support\") was introduced to make instances boot on filesystems that"},{"line_number":45,"context_line":"don\u0027t support \u0027O_DIRECT\u0027 (which bypasses the host page cache and flushes"},{"line_number":46,"context_line":"data directly to the disk), such as \u0027tmpfs\u0027.  In doing so it introduced"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_511f0b07","line":43,"in_reply_to":"5fc1f717_b6df450b","updated":"2019-03-18 11:23:29.000000000","message":"I think you want to avoid \u0027collisions\u0027.  But notice how I was careful with 10 digit SHA-1 _along_ with the one-line summary, that avoids any confusion :-)\n\nBut, can add the full SHA-1 anyway.","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c82aae091f69efed45d427629544049782ded22","unresolved":false,"context_lines":[{"line_number":59,"context_line":"write the data to the physical disk, just as \u0027writethough\u0027 does."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"So we are as safe as we can, but with the extra benefit of image"},{"line_number":62,"context_line":"conversion being _much_ faster."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        * * *"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_31159f40","line":62,"updated":"2019-03-18 11:07:05.000000000","message":"I think the above is very nice for operators so you could provide a release note for \"fixes\"","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"fe2eda1b595933be875febb34270381abbd702d1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"write the data to the physical disk, just as \u0027writethough\u0027 does."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"So we are as safe as we can, but with the extra benefit of image"},{"line_number":62,"context_line":"conversion being _much_ faster."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        * * *"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_11eae3d6","line":62,"in_reply_to":"5fc1f717_31159f40","updated":"2019-03-18 11:23:29.000000000","message":"Can do.","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c82aae091f69efed45d427629544049782ded22","unresolved":false,"context_lines":[{"line_number":67,"context_line":"source image.  And \u0027cache\u003dunsafe\u0027 for the target, because if `qemu-img`"},{"line_number":68,"context_line":"\"crashes during the conversion, the user will throw away the broken"},{"line_number":69,"context_line":"output file anyway and start over\"[1].  And `qemu-img convert`"},{"line_number":70,"context_line":"supports[2] fsync() for the target image since QEMU 1.1 (2012)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"[1] https://git.qemu.org/?p\u003dqemu.git;a\u003dcommitdiff;h\u003d1bd8e175"},{"line_number":73,"context_line":"    -- \"qemu-img convert: Use cache\u003dunsafe for output image\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_f13397f4","line":70,"updated":"2019-03-18 11:07:05.000000000","message":"yeah, so we support a minimum QEMU version that is newer than 1.1 so OK with it.","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c82aae091f69efed45d427629544049782ded22","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Change-Id: I574be2b629aaff23556e25f8db0d740105be6f07"},{"line_number":80,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"},{"line_number":81,"context_line":"Looks-good-to-me\u0027d-by: Kevin Wolf \u003ckwolf@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_76e55ddb","line":81,"updated":"2019-03-18 11:07:05.000000000","message":"Unnecessary.","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"fe2eda1b595933be875febb34270381abbd702d1","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Change-Id: I574be2b629aaff23556e25f8db0d740105be6f07"},{"line_number":80,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"},{"line_number":81,"context_line":"Looks-good-to-me\u0027d-by: Kevin Wolf \u003ckwolf@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5fc1f717_7126c76a","line":81,"in_reply_to":"5fc1f717_76e55ddb","updated":"2019-03-18 11:23:29.000000000","message":"I\u0027d rather keep it.  Kevin (QEMU Block Layer maintainer) reviewed this patch and its ntent over a few e-mails.  So I wanted to acknowledge that.","commit_id":"01dcaabc16dc0c130e0fdc2336e18f2823065f7c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"faf0836eb148d4e477deeb34bc454807873b6213","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"This patch proposes to change that to \u0027writeback\u0027."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Let\u0027s addresses the \u0027safety\u0027 concern:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  \"What about data integrity in the event of a host crash (especially"},{"line_number":55,"context_line":"   on shared file systems such as NFS)?\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Answer: If the host crashes mid-way during image conversion, then"},{"line_number":58,"context_line":"neither \"data integrity\" nor the cache mode in use matters.  But if the"},{"line_number":59,"context_line":"image conversion completes _succesfully_, then \u0027writeback\u0027 will safely"},{"line_number":60,"context_line":"write the data to the physical disk, just as \u0027writethough\u0027 does."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"So we are as safe as we can, but with the extra benefit of image"},{"line_number":63,"context_line":"conversion being _much_ faster."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        * * *"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5fc1f717_e7051515","line":63,"range":{"start_line":52,"start_character":0,"end_line":63,"end_character":31},"updated":"2019-03-18 13:39:15.000000000","message":"This is mostly what I was wondering about after reading through the descriptions of writeback and writethrough on this related config option:\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#libvirt.disk_cachemodes","commit_id":"886850f50f62e97a5661d68c1689fdc932fb7b61"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7c7dec714b42b3715c61fdf0d496bb0a161f5fc6","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"This patch proposes to change that to \u0027writeback\u0027."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Let\u0027s addresses the \u0027safety\u0027 concern:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  \"What about data integrity in the event of a host crash (especially"},{"line_number":55,"context_line":"   on shared file systems such as NFS)?\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Answer: If the host crashes mid-way during image conversion, then"},{"line_number":58,"context_line":"neither \"data integrity\" nor the cache mode in use matters.  But if the"},{"line_number":59,"context_line":"image conversion completes _succesfully_, then \u0027writeback\u0027 will safely"},{"line_number":60,"context_line":"write the data to the physical disk, just as \u0027writethough\u0027 does."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"So we are as safe as we can, but with the extra benefit of image"},{"line_number":63,"context_line":"conversion being _much_ faster."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        * * *"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5fc1f717_81d5181e","line":63,"range":{"start_line":52,"start_character":0,"end_line":63,"end_character":31},"in_reply_to":"5fc1f717_4af18d00","updated":"2019-03-18 16:21:18.000000000","message":"What we\u0027ve discovered, and is highlighted by kashyap\u0027s really handy cache-mode feature table, is that those docs have always been wrong. We always knew what we wanted, we just didn\u0027t know what qemu called it...","commit_id":"886850f50f62e97a5661d68c1689fdc932fb7b61"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"fe94afdf11975c53704b125b7d81504c83d8cadc","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"This patch proposes to change that to \u0027writeback\u0027."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Let\u0027s addresses the \u0027safety\u0027 concern:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  \"What about data integrity in the event of a host crash (especially"},{"line_number":55,"context_line":"   on shared file systems such as NFS)?\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Answer: If the host crashes mid-way during image conversion, then"},{"line_number":58,"context_line":"neither \"data integrity\" nor the cache mode in use matters.  But if the"},{"line_number":59,"context_line":"image conversion completes _succesfully_, then \u0027writeback\u0027 will safely"},{"line_number":60,"context_line":"write the data to the physical disk, just as \u0027writethough\u0027 does."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"So we are as safe as we can, but with the extra benefit of image"},{"line_number":63,"context_line":"conversion being _much_ faster."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        * * *"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5fc1f717_4af18d00","line":63,"range":{"start_line":52,"start_character":0,"end_line":63,"end_character":31},"in_reply_to":"5fc1f717_e7051515","updated":"2019-03-18 14:35:52.000000000","message":"Even for non-image conversion case, the QEMU Block Layer folks recommend \u0027writeback\u0027 (*if* the O_DIRECT-based \u0027none\u0027 is not possible -- due to the host kernel lacking support).","commit_id":"886850f50f62e97a5661d68c1689fdc932fb7b61"}],"nova/privsep/qemu.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"28e57a0090debb87717c7dd9f16d0486e68d4fe5","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # O_DIRECT, which is the case, for example, with \u0027tmpfs\u0027. This"},{"line_number":51,"context_line":"    # simply crashes `openstack server create` in environments like live"},{"line_number":52,"context_line":"    # distributions. In such cases, the best choice is \u0027writeback\u0027,"},{"line_number":53,"context_line":"    # which (a) makes the conversion multiple orders faster; and (b) is"},{"line_number":54,"context_line":"    # as safe as it can be, because at the end of the conversion it,"},{"line_number":55,"context_line":"    # just like, \u0027writethrough\u0027, calls fsync(2)|fdatasync(2), which"},{"line_number":56,"context_line":"    # ensures to safely write the data to the physical disk."}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_e23215f2","line":53,"range":{"start_line":53,"start_character":37,"end_line":53,"end_character":59},"updated":"2019-03-14 15:59:11.000000000","message":"nit: 15x faster is one order of magnitude, not \"multiple orders\"","commit_id":"33782daddf90c61052ff668c138185753bc6c71f"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"95ee86fe0732aef578b504b3854eca3d5a7ebfa0","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # O_DIRECT, which is the case, for example, with \u0027tmpfs\u0027. This"},{"line_number":51,"context_line":"    # simply crashes `openstack server create` in environments like live"},{"line_number":52,"context_line":"    # distributions. In such cases, the best choice is \u0027writeback\u0027,"},{"line_number":53,"context_line":"    # which (a) makes the conversion multiple orders faster; and (b) is"},{"line_number":54,"context_line":"    # as safe as it can be, because at the end of the conversion it,"},{"line_number":55,"context_line":"    # just like, \u0027writethrough\u0027, calls fsync(2)|fdatasync(2), which"},{"line_number":56,"context_line":"    # ensures to safely write the data to the physical disk."}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_6259458c","line":53,"range":{"start_line":53,"start_character":37,"end_line":53,"end_character":59},"in_reply_to":"5fc1f717_e23215f2","updated":"2019-03-14 16:19:35.000000000","message":"Err, indeed, I should\u0027ve written: \"multiple _times_ faster\".  Can respin, if you like :-)  /me hates these kinds of mistakes, however \"trivial\".","commit_id":"33782daddf90c61052ff668c138185753bc6c71f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c9887e792938b048ebad2a9c965565339aebb6c7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    # filesystem that doesn\u0027t have support for O_DIRECT, which is the case"},{"line_number":47,"context_line":"    # for example with tmpfs. This simply crashes \"openstack server create\""},{"line_number":48,"context_line":"    # in environments like live distributions. In such case, the best choice"},{"line_number":49,"context_line":"    # is writethrough, which is power-failure safe, but still faster than"},{"line_number":50,"context_line":"    # writeback."},{"line_number":51,"context_line":"    if nova.privsep.utils.supports_direct_io(instances_path):"},{"line_number":52,"context_line":"        cache_mode \u003d \u0027none\u0027"},{"line_number":53,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_84deb8d7","side":"PARENT","line":50,"range":{"start_line":49,"start_character":9,"end_line":50,"end_character":15},"updated":"2019-03-14 22:29:37.000000000","message":"So this is the opposite of true?","commit_id":"e608568518ed91a0cbf08f779c5adb851762d80a"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"978ef42700740e6ea9b072e5a4ce1303ec21ce83","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    # filesystem that doesn\u0027t have support for O_DIRECT, which is the case"},{"line_number":47,"context_line":"    # for example with tmpfs. This simply crashes \"openstack server create\""},{"line_number":48,"context_line":"    # in environments like live distributions. In such case, the best choice"},{"line_number":49,"context_line":"    # is writethrough, which is power-failure safe, but still faster than"},{"line_number":50,"context_line":"    # writeback."},{"line_number":51,"context_line":"    if nova.privsep.utils.supports_direct_io(instances_path):"},{"line_number":52,"context_line":"        cache_mode \u003d \u0027none\u0027"},{"line_number":53,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_5795df31","side":"PARENT","line":50,"range":{"start_line":49,"start_character":9,"end_line":50,"end_character":15},"in_reply_to":"5fc1f717_84deb8d7","updated":"2019-03-15 08:07:34.000000000","message":"Eagle eyes; yes.","commit_id":"e608568518ed91a0cbf08f779c5adb851762d80a"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"978ef42700740e6ea9b072e5a4ce1303ec21ce83","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    # distributions. In such cases, the best choice is \u0027writeback\u0027,"},{"line_number":53,"context_line":"    # which (a) makes the conversion multiple times faster; and (b) is"},{"line_number":54,"context_line":"    # as safe as it can be, because at the end of the conversion it,"},{"line_number":55,"context_line":"    # just like, \u0027writethrough\u0027, calls fsync(2)|fdatasync(2), which"},{"line_number":56,"context_line":"    # ensures to safely write the data to the physical disk."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    if nova.privsep.utils.supports_direct_io(instances_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_b7a523a4","line":55,"range":{"start_line":55,"start_character":6,"end_line":55,"end_character":16},"updated":"2019-03-15 08:07:34.000000000","message":"OCD nit: Spurious comma","commit_id":"cfac912c83ac9fb90e5e9fd90dda74ce5b2893f7"}]}
