)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2b871a1b610884b6c2da7ae2b66f2694b646b3ae","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a3b20dcf_a2b92892","line":12,"updated":"2021-08-17 13:53:44.000000000","message":"I\u0027m not 100% sure I get the logic. I always thought that what we do is basically:\n1) make sure the guest cannot change its disk\n2) duplicate the disk\n3) allow the guest to change the disk again\n\nI don\u0027t see how can we further reduce the time the disk is frozen.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fd9849375e784282e46a9e7efeccf019cbf4be13","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f15b65b9_b60d8ce4","line":12,"in_reply_to":"061f9d2b_28678bde","updated":"2021-10-18 14:45:41.000000000","message":"Ack","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"4284aa76f4f6a55f6ae6b0be7a2006587bf856ef","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"061f9d2b_28678bde","line":12,"in_reply_to":"15d712e9_f7074967","updated":"2021-10-14 09:17:16.000000000","message":"I will check with QEMU team to have their opinion about the logic and the potential inconsistency during the mirorring.\nI will come back to you with the information.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b20276328048b8a5237c7f2e87c8edda99c94d4d","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b9f650b2_9cf1f10a","line":12,"in_reply_to":"37c3a968_1f9102f1","updated":"2021-10-12 09:18:32.000000000","message":"Yeah, I\u0027m having the same concern: we would then change the behaviour and some operators could be afraid by this. We need to think about how to have a way to help Pierre for his bug, but not by modifying the behaviour. Should we provide some new config option maybe ?","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1ed796db0fd0f179a902927dfbb41999fc7b4a8c","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"37c3a968_1f9102f1","line":12,"in_reply_to":"88b97e32_f771e195","updated":"2021-10-11 09:41:45.000000000","message":"this does chnage the logic since the guest can write to the disk while it is mirroring meaning the abort may not be safe.\n\nthe freeze only happens after teh rebase job is complete in your change where as before it happened before the rebase startred.\n\nwithout checking the beahvior of abourt i may revertr chnages that happened to the disk during the copy.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"dbb37ca9134d0acd5bf9ce7991212c386cd59c9f","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"88b97e32_f771e195","line":12,"in_reply_to":"a3b20dcf_a2b92892","updated":"2021-09-01 07:43:48.000000000","message":"Yes, I don\u0027t change the logic. I moved only the freeze of the file system after the mirroring of the disk.\n\nIn my case, the disk is store locally on the compute node with a big size (200Go and more). The mirror takes minimum 30 minutes and today the freeze is executed before this mirror so the file system is frozen for too long time. The change reduces this time because the freeze is applied only before the end of mirroring and the unfreeze just after.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"776ecf385ed463c8944c9d0fe601e32448e49e0a","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"15d712e9_f7074967","line":12,"in_reply_to":"b9f650b2_9cf1f10a","updated":"2021-10-12 10:44:47.000000000","message":"what we kind of need to do is do an inital copy wihtout quiesing. then quiese and copy just the deltas, then abort and unquiese\n\nbasically do the 200G copy but with partly stale data then use that as a base for the block rebase so that only the intermdiaty changes need to be copied when we have blocked io. that we we minimise the time the disks are locked.\n\nim not really sure what the best way to do that is.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"e0d36bfdecbb6f28fbd078ff7173aebe9c1abbf0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The file system before the start of mirroring generates kernel task"},{"line_number":10,"context_line":"blocked for more than 120 seconds. The file system freeze after the"},{"line_number":11,"context_line":"start of mirroring and just before stopping the mirror between the"},{"line_number":12,"context_line":"original disk and copy of disk reduce the time of the freeze."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-Bug: #1939116"},{"line_number":15,"context_line":"Change-Id: I067382ec676b65f8698772a262c5e4cea7a1216d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"13475478_602179d6","line":12,"in_reply_to":"f15b65b9_b60d8ce4","updated":"2022-01-26 12:52:33.000000000","message":"QEMU community replies to the question: https://lists.nongnu.org/archive/html/qemu-block/2022-01/msg00456.html\n\n2 things in the reply:\n- they agree with the proposal\n- they propose an improvement to use another mechanism in QEMU \"backup block job\"","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"a8ba4a8d82de37b489599ffebffccfb9ee211898","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d5efb51f_0ae042d4","updated":"2022-01-24 16:19:50.000000000","message":"(There\u0027s a broader discussion here on the \u0027qemu-devel\u0027: https://lists.nongnu.org/archive/html/qemu-devel/2022-01/msg04346.html)","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3fe7569acb3909df8259661d2d025ad2fb562114","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cf8fc53d_6dc71e1b","updated":"2021-11-23 16:20:42.000000000","message":"As discussing in the IRC meeting, I\u0027m removing the Review-Prio label as no update happened since a while. Please ping me on IRC (bauzas) when you want me to review again.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b1bf1918d1b32e8c1da78bd38450be79252b8c31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8e6015a5_d701fbe4","updated":"2021-10-11 09:39:38.000000000","message":"im not sure this change is safe i think we need someone with qemu knoladge to speak to the behavior of abort on a block rebase if data has been written to the intermidearte tempory image","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"8270e4207570feea5c3eff5da945918485f09db4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"219d4594_2e756a96","updated":"2022-02-24 09:03:17.000000000","message":"recheck","commit_id":"6169c00ae6aca307b339649c611e68e4adbcf9ab"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"cb35cd2d181e30b4f28d6f37996c6a22655d036f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5eda168c_339a8546","updated":"2022-02-01 10:36:42.000000000","message":"recheck","commit_id":"6169c00ae6aca307b339649c611e68e4adbcf9ab"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"694b0ed2917375d188f816a1ecc6f5ef7aff4ace","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"91372c32_3ead2792","updated":"2022-01-31 12:32:45.000000000","message":"recheck","commit_id":"6169c00ae6aca307b339649c611e68e4adbcf9ab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"39dda16cce06a74f651b06333d7773ae97cb5ad0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"96b31dfe_de89c308","updated":"2022-03-01 15:30:32.000000000","message":"Thanks! ","commit_id":"caf5faf55670ab212868498e421bedc074fafd89"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2eda7633ae57bf8a7e1aae7e5b5a16d74e8d6fb2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e38863f3_11f50372","updated":"2022-03-01 12:25:14.000000000","message":"gibi\u0027s request for a comment explaining why we freeze when we do has been adreesed.\ni have also seen some of the email exchanges and converstation regrading why this is ok\nto do with the qemu comunity.\n\noverally i think this is ok as a backportable fix but i think we should also move to the new qemu/libvirt apis to do this in the futrue removing the current workaround we have.","commit_id":"caf5faf55670ab212868498e421bedc074fafd89"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d70f79a80258c933e21847e90fb01a4dee29e3d7","unresolved":true,"context_lines":[{"line_number":3151,"context_line":"        except Exception:"},{"line_number":3152,"context_line":"            pass"},{"line_number":3153,"context_line":""},{"line_number":3154,"context_line":"        # NOTE (rmk): We are using shallow rebases as a workaround to a bug"},{"line_number":3155,"context_line":"        #             in QEMU 1.3. In order to do this, we need to create"},{"line_number":3156,"context_line":"        #             a destination image with the original backing file"},{"line_number":3157,"context_line":"        #             and matching size of the instance root disk."},{"line_number":3158,"context_line":"        src_disk_size \u003d libvirt_utils.get_disk_size(disk_path,"},{"line_number":3159,"context_line":"                                                    format\u003dsource_format)"},{"line_number":3160,"context_line":"        src_back_path \u003d libvirt_utils.get_disk_backing_file(disk_path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"b5f68a48_28effa26","line":3157,"range":{"start_line":3154,"start_character":7,"end_line":3157,"end_character":66},"updated":"2021-10-12 10:57:00.000000000","message":"do we need to work around this anymore?\n\nwe might just want to follow https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2eda7633ae57bf8a7e1aae7e5b5a16d74e8d6fb2","unresolved":true,"context_lines":[{"line_number":3151,"context_line":"        except Exception:"},{"line_number":3152,"context_line":"            pass"},{"line_number":3153,"context_line":""},{"line_number":3154,"context_line":"        # NOTE (rmk): We are using shallow rebases as a workaround to a bug"},{"line_number":3155,"context_line":"        #             in QEMU 1.3. In order to do this, we need to create"},{"line_number":3156,"context_line":"        #             a destination image with the original backing file"},{"line_number":3157,"context_line":"        #             and matching size of the instance root disk."},{"line_number":3158,"context_line":"        src_disk_size \u003d libvirt_utils.get_disk_size(disk_path,"},{"line_number":3159,"context_line":"                                                    format\u003dsource_format)"},{"line_number":3160,"context_line":"        src_back_path \u003d libvirt_utils.get_disk_backing_file(disk_path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6631f075_5af9954a","line":3157,"range":{"start_line":3154,"start_character":7,"end_line":3157,"end_character":66},"in_reply_to":"2ea417a2_13e3e744","updated":"2022-03-01 12:25:14.000000000","message":"i guess we can but we should likely rework this in the Zed release","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"a8ba4a8d82de37b489599ffebffccfb9ee211898","unresolved":true,"context_lines":[{"line_number":3151,"context_line":"        except Exception:"},{"line_number":3152,"context_line":"            pass"},{"line_number":3153,"context_line":""},{"line_number":3154,"context_line":"        # NOTE (rmk): We are using shallow rebases as a workaround to a bug"},{"line_number":3155,"context_line":"        #             in QEMU 1.3. In order to do this, we need to create"},{"line_number":3156,"context_line":"        #             a destination image with the original backing file"},{"line_number":3157,"context_line":"        #             and matching size of the instance root disk."},{"line_number":3158,"context_line":"        src_disk_size \u003d libvirt_utils.get_disk_size(disk_path,"},{"line_number":3159,"context_line":"                                                    format\u003dsource_format)"},{"line_number":3160,"context_line":"        src_back_path \u003d libvirt_utils.get_disk_backing_file(disk_path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"f60a7c32_df96abc5","line":3157,"range":{"start_line":3154,"start_character":7,"end_line":3157,"end_character":66},"in_reply_to":"b5f68a48_28effa26","updated":"2022-01-24 16:19:50.000000000","message":"Yeah, I was wondering the same.  The QEMU version being referred to is super old, 1.3.  And it doesn\u0027t specify the bug beyond \"a bug\".\n\nMore generally, we should be able to use blockCopy() where possible -- see the copy() helper in Nova\u0027s nova/virt/libvirt/guest.py\n\nAlso, I\u0027ve moved and slightly modified that wiki page I wrote to here: https://libvirt.org/kbase/live_full_disk_backup.html","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"e0d36bfdecbb6f28fbd078ff7173aebe9c1abbf0","unresolved":true,"context_lines":[{"line_number":3151,"context_line":"        except Exception:"},{"line_number":3152,"context_line":"            pass"},{"line_number":3153,"context_line":""},{"line_number":3154,"context_line":"        # NOTE (rmk): We are using shallow rebases as a workaround to a bug"},{"line_number":3155,"context_line":"        #             in QEMU 1.3. In order to do this, we need to create"},{"line_number":3156,"context_line":"        #             a destination image with the original backing file"},{"line_number":3157,"context_line":"        #             and matching size of the instance root disk."},{"line_number":3158,"context_line":"        src_disk_size \u003d libvirt_utils.get_disk_size(disk_path,"},{"line_number":3159,"context_line":"                                                    format\u003dsource_format)"},{"line_number":3160,"context_line":"        src_back_path \u003d libvirt_utils.get_disk_backing_file(disk_path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"2ea417a2_13e3e744","line":3157,"range":{"start_line":3154,"start_character":7,"end_line":3157,"end_character":66},"in_reply_to":"f60a7c32_df96abc5","updated":"2022-01-26 12:52:33.000000000","message":"I agree with you about the subject. Do you think is possible to this improvement in the second step?","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b1bf1918d1b32e8c1da78bd38450be79252b8c31","unresolved":true,"context_lines":[{"line_number":3168,"context_line":"            self._can_quiesce(instance, image_meta)"},{"line_number":3169,"context_line":"        except exception.NovaException as err:"},{"line_number":3170,"context_line":"            if image_meta.properties.get(\u0027os_require_quiesce\u0027, False):"},{"line_number":3171,"context_line":"                LOG.error(\u0027Quiescing instance failed but image property \u0027"},{"line_number":3172,"context_line":"                          \u0027\"os_require_quiesce\" is set: %(reason)s.\u0027,"},{"line_number":3173,"context_line":"                          {\u0027reason\u0027: err}, instance\u003dinstance)"},{"line_number":3174,"context_line":"                raise"},{"line_number":3175,"context_line":"            LOG.info(\u0027Quiescing instance failed: %(reason)s.\u0027,"},{"line_number":3176,"context_line":"                     {\u0027reason\u0027: err}, instance\u003dinstance)"},{"line_number":3177,"context_line":""},{"line_number":3178,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb174b_e5a84887","line":3175,"range":{"start_line":3171,"start_character":14,"end_line":3175,"end_character":62},"updated":"2021-10-11 09:39:38.000000000","message":"can_quiesce shoudl not actully be quiescing the image so the logs are not correct.\n\nquiescing has not failed since you have not tried to quiesce.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2eda7633ae57bf8a7e1aae7e5b5a16d74e8d6fb2","unresolved":false,"context_lines":[{"line_number":3168,"context_line":"            self._can_quiesce(instance, image_meta)"},{"line_number":3169,"context_line":"        except exception.NovaException as err:"},{"line_number":3170,"context_line":"            if image_meta.properties.get(\u0027os_require_quiesce\u0027, False):"},{"line_number":3171,"context_line":"                LOG.error(\u0027Quiescing instance failed but image property \u0027"},{"line_number":3172,"context_line":"                          \u0027\"os_require_quiesce\" is set: %(reason)s.\u0027,"},{"line_number":3173,"context_line":"                          {\u0027reason\u0027: err}, instance\u003dinstance)"},{"line_number":3174,"context_line":"                raise"},{"line_number":3175,"context_line":"            LOG.info(\u0027Quiescing instance failed: %(reason)s.\u0027,"},{"line_number":3176,"context_line":"                     {\u0027reason\u0027: err}, instance\u003dinstance)"},{"line_number":3177,"context_line":""},{"line_number":3178,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"06534d4a_8c1bcf05","line":3175,"range":{"start_line":3171,"start_character":14,"end_line":3175,"end_character":62},"in_reply_to":"721b936f_f433e4c7","updated":"2022-03-01 12:25:14.000000000","message":"Ack","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"e0d36bfdecbb6f28fbd078ff7173aebe9c1abbf0","unresolved":true,"context_lines":[{"line_number":3168,"context_line":"            self._can_quiesce(instance, image_meta)"},{"line_number":3169,"context_line":"        except exception.NovaException as err:"},{"line_number":3170,"context_line":"            if image_meta.properties.get(\u0027os_require_quiesce\u0027, False):"},{"line_number":3171,"context_line":"                LOG.error(\u0027Quiescing instance failed but image property \u0027"},{"line_number":3172,"context_line":"                          \u0027\"os_require_quiesce\" is set: %(reason)s.\u0027,"},{"line_number":3173,"context_line":"                          {\u0027reason\u0027: err}, instance\u003dinstance)"},{"line_number":3174,"context_line":"                raise"},{"line_number":3175,"context_line":"            LOG.info(\u0027Quiescing instance failed: %(reason)s.\u0027,"},{"line_number":3176,"context_line":"                     {\u0027reason\u0027: err}, instance\u003dinstance)"},{"line_number":3177,"context_line":""},{"line_number":3178,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"721b936f_f433e4c7","line":3175,"range":{"start_line":3171,"start_character":14,"end_line":3175,"end_character":62},"in_reply_to":"dfeb174b_e5a84887","updated":"2022-01-26 12:52:33.000000000","message":"I will change the comment","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d70f79a80258c933e21847e90fb01a4dee29e3d7","unresolved":true,"context_lines":[{"line_number":3188,"context_line":""},{"line_number":3189,"context_line":"            # NOTE (rmk): Establish a temporary mirror of our root disk and"},{"line_number":3190,"context_line":"            #             issue an abort once we have a complete copy."},{"line_number":3191,"context_line":"            dev.rebase(disk_delta, copy\u003dTrue, reuse_ext\u003dTrue, shallow\u003dTrue)"},{"line_number":3192,"context_line":""},{"line_number":3193,"context_line":"            while not dev.is_job_complete():"},{"line_number":3194,"context_line":"                time.sleep(0.5)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7bc0b27b_3a7449ef","line":3191,"range":{"start_line":3191,"start_character":10,"end_line":3191,"end_character":75},"updated":"2021-10-12 10:57:00.000000000","message":"so instead of doing a rebase and aborting it we woudl do a normal thin snapshot then make a copy of that\nmerge the snap shot into the orginal base image and merge teh copy of the snapshot into the copy of the base image created above.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"e0d36bfdecbb6f28fbd078ff7173aebe9c1abbf0","unresolved":true,"context_lines":[{"line_number":3188,"context_line":""},{"line_number":3189,"context_line":"            # NOTE (rmk): Establish a temporary mirror of our root disk and"},{"line_number":3190,"context_line":"            #             issue an abort once we have a complete copy."},{"line_number":3191,"context_line":"            dev.rebase(disk_delta, copy\u003dTrue, reuse_ext\u003dTrue, shallow\u003dTrue)"},{"line_number":3192,"context_line":""},{"line_number":3193,"context_line":"            while not dev.is_job_complete():"},{"line_number":3194,"context_line":"                time.sleep(0.5)"}],"source_content_type":"text/x-python","patch_set":1,"id":"71868863_a630f4cb","line":3191,"range":{"start_line":3191,"start_character":10,"end_line":3191,"end_character":75},"in_reply_to":"7bc0b27b_3a7449ef","updated":"2022-01-26 12:52:33.000000000","message":"the process of snapshot for me:\n1. guest.freeze_filesystems()\n2. dev.rebase(disk_delta, copy\u003dTrue, reuse_ext\u003dTrue, shallow\u003dTrue) # Create a mirror of disk\n3. while not dev.is_job_complete() #wait for the end of mirroring (the issue is here, the waiting time depend on the size of the disk and the IOPS)\n4. dev.abort_job()\n5. guest.thaw_filesystems()","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b1bf1918d1b32e8c1da78bd38450be79252b8c31","unresolved":true,"context_lines":[{"line_number":3196,"context_line":"        finally:"},{"line_number":3197,"context_line":"            quiesced \u003d False"},{"line_number":3198,"context_line":"            try:"},{"line_number":3199,"context_line":"                self.quiesce(context, instance, image_meta)"},{"line_number":3200,"context_line":"                quiesced \u003d True"},{"line_number":3201,"context_line":"            except exception.NovaException as err:"},{"line_number":3202,"context_line":"                LOG.info(\u0027Skipping quiescing instance: %(reason)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"469fdd11_6814c65d","line":3199,"range":{"start_line":3199,"start_character":15,"end_line":3199,"end_character":59},"updated":"2021-10-11 09:39:38.000000000","message":"so here you are moving the quiesce to after the rebase is complete and before the abort.\nwhen we do the abort will that result in a revert fo the disk change or will the abort merge the content form the disk?\n\ni would assume we did the quiese before the rebase intentionally to avoid data lose when we did the revert so im not suer this is safe to do.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"20dd32999991d46af3e3e1489185defd680d42fd","unresolved":false,"context_lines":[{"line_number":3196,"context_line":"        finally:"},{"line_number":3197,"context_line":"            quiesced \u003d False"},{"line_number":3198,"context_line":"            try:"},{"line_number":3199,"context_line":"                self.quiesce(context, instance, image_meta)"},{"line_number":3200,"context_line":"                quiesced \u003d True"},{"line_number":3201,"context_line":"            except exception.NovaException as err:"},{"line_number":3202,"context_line":"                LOG.info(\u0027Skipping quiescing instance: %(reason)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5d9c1dde_a6c782a2","line":3199,"range":{"start_line":3199,"start_character":15,"end_line":3199,"end_character":59},"in_reply_to":"394f0ce1_a7440090","updated":"2022-02-25 15:35:32.000000000","message":"The mirroring is completed so the result is both disks are the same. After the end of step 2 (dev.is_job_complete \u003d\u003d True), the mirroring of write continue on both disk and it\u0027s stop with step 4 (dev.abort_job).\nSo between steps 2 et 4, the write is synced between both disks.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"e0d36bfdecbb6f28fbd078ff7173aebe9c1abbf0","unresolved":true,"context_lines":[{"line_number":3196,"context_line":"        finally:"},{"line_number":3197,"context_line":"            quiesced \u003d False"},{"line_number":3198,"context_line":"            try:"},{"line_number":3199,"context_line":"                self.quiesce(context, instance, image_meta)"},{"line_number":3200,"context_line":"                quiesced \u003d True"},{"line_number":3201,"context_line":"            except exception.NovaException as err:"},{"line_number":3202,"context_line":"                LOG.info(\u0027Skipping quiescing instance: %(reason)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e503f933_fa9cad92","line":3199,"range":{"start_line":3199,"start_character":15,"end_line":3199,"end_character":59},"in_reply_to":"469fdd11_6814c65d","updated":"2022-01-26 12:52:33.000000000","message":"the abort stop the mirroring between the both disk (original + copy)\n\nNo data lost during the abort FMPOV","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8962fca2a0d3feb7ef9083678823cf11d0473a56","unresolved":false,"context_lines":[{"line_number":3196,"context_line":"        finally:"},{"line_number":3197,"context_line":"            quiesced \u003d False"},{"line_number":3198,"context_line":"            try:"},{"line_number":3199,"context_line":"                self.quiesce(context, instance, image_meta)"},{"line_number":3200,"context_line":"                quiesced \u003d True"},{"line_number":3201,"context_line":"            except exception.NovaException as err:"},{"line_number":3202,"context_line":"                LOG.info(\u0027Skipping quiescing instance: %(reason)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ac98f65a_484f82ed","line":3199,"range":{"start_line":3199,"start_character":15,"end_line":3199,"end_character":59},"in_reply_to":"5d9c1dde_a6c782a2","updated":"2022-02-28 13:02:49.000000000","message":"Thank you for the explanation. Based on this I agree with the proposed change. Could you please add this explanation to the code as comment? That would help the reader to understand why freezing the FS is enough to be done after the mirror is finished.","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"7985dfcad9300584a6c4db9f91c2705a6a9018cb","unresolved":false,"context_lines":[{"line_number":3196,"context_line":"        finally:"},{"line_number":3197,"context_line":"            quiesced \u003d False"},{"line_number":3198,"context_line":"            try:"},{"line_number":3199,"context_line":"                self.quiesce(context, instance, image_meta)"},{"line_number":3200,"context_line":"                quiesced \u003d True"},{"line_number":3201,"context_line":"            except exception.NovaException as err:"},{"line_number":3202,"context_line":"                LOG.info(\u0027Skipping quiescing instance: %(reason)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"0dab9a77_2a57c579","line":3199,"range":{"start_line":3199,"start_character":15,"end_line":3199,"end_character":59},"in_reply_to":"ac98f65a_484f82ed","updated":"2022-03-01 10:26:33.000000000","message":"Done in patchset 3","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"baefb911221427a5d6c272848eb6a182e32fb4e9","unresolved":true,"context_lines":[{"line_number":3196,"context_line":"        finally:"},{"line_number":3197,"context_line":"            quiesced \u003d False"},{"line_number":3198,"context_line":"            try:"},{"line_number":3199,"context_line":"                self.quiesce(context, instance, image_meta)"},{"line_number":3200,"context_line":"                quiesced \u003d True"},{"line_number":3201,"context_line":"            except exception.NovaException as err:"},{"line_number":3202,"context_line":"                LOG.info(\u0027Skipping quiescing instance: %(reason)s.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"394f0ce1_a7440090","line":3199,"range":{"start_line":3199,"start_character":15,"end_line":3199,"end_character":59},"in_reply_to":"e503f933_fa9cad92","updated":"2022-02-01 17:07:09.000000000","message":"So after the dev.is_job_complete() is True the job is still continue copy new data that recently got stale?  I mean the following sequence of events:\n\n1) dev.rebase\n2) dev.is_job_complete \u003d\u003d True\n3) quiesce\n4) dev.abort_job\n5) unquiesce\n\nWhat if the VM writes to its disk between #2 and #3? Is that change still copied to the mirror?","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b1bf1918d1b32e8c1da78bd38450be79252b8c31","unresolved":true,"context_lines":[{"line_number":3206,"context_line":"            nova.privsep.path.chown(disk_delta, uid\u003dos.getuid())"},{"line_number":3207,"context_line":"            self._host.write_instance_config(xml)"},{"line_number":3208,"context_line":"            if quiesced:"},{"line_number":3209,"context_line":"                self.unquiesce(context, instance, image_meta)"},{"line_number":3210,"context_line":""},{"line_number":3211,"context_line":"        # Convert the delta (CoW) image with a backing file to a flat"},{"line_number":3212,"context_line":"        # image with no backing file."}],"source_content_type":"text/x-python","patch_set":1,"id":"28a0aaab_9624ec81","line":3209,"range":{"start_line":3209,"start_character":21,"end_line":3209,"end_character":30},"updated":"2021-10-11 09:39:38.000000000","message":"+1 for using unquiesce and quiesce instead of _set_quiesced","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"},{"author":{"_account_id":33607,"name":"Pierre Libeau","email":"pierre.libeau@ovhcloud.com","username":"plibeau"},"change_message_id":"e0d36bfdecbb6f28fbd078ff7173aebe9c1abbf0","unresolved":false,"context_lines":[{"line_number":3206,"context_line":"            nova.privsep.path.chown(disk_delta, uid\u003dos.getuid())"},{"line_number":3207,"context_line":"            self._host.write_instance_config(xml)"},{"line_number":3208,"context_line":"            if quiesced:"},{"line_number":3209,"context_line":"                self.unquiesce(context, instance, image_meta)"},{"line_number":3210,"context_line":""},{"line_number":3211,"context_line":"        # Convert the delta (CoW) image with a backing file to a flat"},{"line_number":3212,"context_line":"        # image with no backing file."}],"source_content_type":"text/x-python","patch_set":1,"id":"bb234533_84f79cf3","line":3209,"range":{"start_line":3209,"start_character":21,"end_line":3209,"end_character":30},"in_reply_to":"28a0aaab_9624ec81","updated":"2022-01-26 12:52:33.000000000","message":"Ack","commit_id":"762bca9a8a05f63d74741e721d6c11ee4af6254c"}]}
