)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"53db325ab17db5913b0e7cc966f356d1d6a2caea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3f14b8b3_7e787995","updated":"2024-04-24 11:00:33.000000000","message":"Hi Rajat, I tried this patch with cinder patch on antelope but I am getting errors like https://paste.openstack.org/show/bV0E00krD5jSzz51Oz1h/","commit_id":"4966169053d5eae7e8506e4efbcb04a667dc140f"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"8c2b9f0be8cb526a0fc388f48d75a8706e1cd5df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fd8c9b9f_a3347b79","updated":"2024-12-11 13:39:55.000000000","message":"Working on stable/2024.1 with cinder patch applied https://review.opendev.org/c/openstack/cinder/+/916408","commit_id":"4966169053d5eae7e8506e4efbcb04a667dc140f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"12576e7315e0d9351dd829ab65f979d3b92b1436","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7d576be7_3390cb8b","updated":"2025-04-17 11:17:37.000000000","message":"This is mergable as it is but i would prefer if you udpatd the release not as i commented inline.\n\nyou can ignore the other nit as im unsure that applyting the same logic to source image is actully correct and what you have written defintly sufficent for the described but.\n\nif you update for the release not ill reapply the +2","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"a7cefe8a6de7b13db8f4e8c3de1fd08fa7d404ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"864f775c_9145e2b3","updated":"2025-03-27 05:31:41.000000000","message":"https://review.opendev.org/c/openstack/cinder/+/916408 is merged. Can you also help to merge this please @rajatdhasmana@gmail.com ? Thanks for fixing this bug 😊","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"01f66a953338dbc79aa0bb980396ef6e43d3bafa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6eab1b5c_ae4ea08f","in_reply_to":"7d576be7_3390cb8b","updated":"2025-04-17 11:48:06.000000000","message":"Thanks Sean for the review!","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"36b68d158a911641f7b8d54517ab6683550dddca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f4881bd2_6267ad37","updated":"2025-05-27 11:46:49.000000000","message":"Hi folks, this is still not merged. Can I kindly ask to review please ?","commit_id":"3f2bba901b85b8b2607b6b661ede5db889c1e47a"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"ed56196deaa897285831aacf7eaf4a1f726bfb86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e7879f81_312ab5ad","updated":"2025-07-25 05:44:08.000000000","message":"Hi, can you please review this and merge ?","commit_id":"3f2bba901b85b8b2607b6b661ede5db889c1e47a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8c0b25b9965b160d15463f86bb1fab8b22d4c275","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"03c59d00_e1ab42a8","updated":"2025-04-21 14:30:43.000000000","message":"I don\u0027t want to derail if others are fine with this, but it seems to me like we\u0027d normally do this kind of thing with a functional reproducer.","commit_id":"3f2bba901b85b8b2607b6b661ede5db889c1e47a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"01f66a953338dbc79aa0bb980396ef6e43d3bafa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"91fe7c5e_b15fe7ad","updated":"2025-04-17 11:48:06.000000000","message":"Thanks Sean!","commit_id":"3f2bba901b85b8b2607b6b661ede5db889c1e47a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fd281465f33b7494cab40568e45a57493351cf5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e47cdfb5_20d555cc","in_reply_to":"03c59d00_e1ab42a8","updated":"2026-02-13 10:59:48.000000000","message":"done","commit_id":"3f2bba901b85b8b2607b6b661ede5db889c1e47a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fd281465f33b7494cab40568e45a57493351cf5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4bdc91cd_674567bf","updated":"2026-02-13 10:59:48.000000000","message":"i just rebased this on top of my repoducer so readding +2","commit_id":"962fc2339e6c82eb12a47f1540e66505c7a3e61f"}],"nova/compute/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"12576e7315e0d9351dd829ab65f979d3b92b1436","unresolved":true,"context_lines":[{"line_number":3640,"context_line":"            bdms \u003d image[\u0027properties\u0027].get(\u0027block_device_mapping\u0027)"},{"line_number":3641,"context_line":"            # If the BDM is of root volume, get the volume_size"},{"line_number":3642,"context_line":"            boot_bdm \u003d [bdm for bdm in bdms if ("},{"line_number":3643,"context_line":"                bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027snapshot\u0027 and"},{"line_number":3644,"context_line":"                bdm.get(\u0027boot_index\u0027) \u003d\u003d 0)]"},{"line_number":3645,"context_line":"            if boot_bdm:"},{"line_number":3646,"context_line":"                image_size \u003d boot_bdm[0].get(\u0027volume_size\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c5d9bdb4_91417d6b","line":3643,"range":{"start_line":3643,"start_character":16,"end_line":3643,"end_character":52},"updated":"2025-04-17 11:17:37.000000000","message":"nit: we probably do not need to check if its a snapshot here.\nwe can but i think falling back to the volume size would always be ok.\nthis is more explict so you do not need to change it but im not sure what\nis really gained by only using the volume size in this case.\n\nWhile it would be unconventional I could see someone creating a blank 0-length image and then using rebuild to erase the volume.\n\ni have created small but not 0 lenght images in teh past to do somethign similar when i actully planned to install form an iso via rescure so maybe we dont need to care about source_type\u003d\u0027image\u0027 here and snapshot is fine.","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"01f66a953338dbc79aa0bb980396ef6e43d3bafa","unresolved":false,"context_lines":[{"line_number":3640,"context_line":"            bdms \u003d image[\u0027properties\u0027].get(\u0027block_device_mapping\u0027)"},{"line_number":3641,"context_line":"            # If the BDM is of root volume, get the volume_size"},{"line_number":3642,"context_line":"            boot_bdm \u003d [bdm for bdm in bdms if ("},{"line_number":3643,"context_line":"                bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027snapshot\u0027 and"},{"line_number":3644,"context_line":"                bdm.get(\u0027boot_index\u0027) \u003d\u003d 0)]"},{"line_number":3645,"context_line":"            if boot_bdm:"},{"line_number":3646,"context_line":"                image_size \u003d boot_bdm[0].get(\u0027volume_size\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d4033ba1_ee4d1cac","line":3643,"range":{"start_line":3643,"start_character":16,"end_line":3643,"end_character":52},"in_reply_to":"c5d9bdb4_91417d6b","updated":"2025-04-17 11:48:06.000000000","message":"Acknowledged","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"},{"author":{"_account_id":38865,"name":"Nope","email":"ohnomyvms@gmail.com","username":"ohnomyvms"},"change_message_id":"0aad75e93ebc43d48fb3de75a85255fbc71ace40","unresolved":false,"context_lines":[{"line_number":3760,"context_line":"        if image_size \u003d\u003d 0:"},{"line_number":3761,"context_line":"            # If the image size is 0, it could be a metadata reference"},{"line_number":3762,"context_line":"            # of a volume snapshot"},{"line_number":3763,"context_line":"            bdms \u003d image[\u0027properties\u0027].get(\u0027block_device_mapping\u0027)"},{"line_number":3764,"context_line":"            # If the BDM is of root volume, get the volume_size"},{"line_number":3765,"context_line":"            boot_bdm \u003d [bdm for bdm in bdms if ("},{"line_number":3766,"context_line":"                bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027snapshot\u0027 and"}],"source_content_type":"text/x-python","patch_set":4,"id":"3b0973a1_6c521745","line":3763,"updated":"2026-03-01 04:29:29.000000000","message":"if `block_device_mapping` is absent from properties, `bdms` is None and iterating it on the next line is a TypeError. separately, if `volume_size` is missing from the BDM, `image_size` becomes None, skips the `\u003d\u003d 0` guard (None !\u003d 0), and `reimage_timeout_per_gb * None` is another TypeError. both happen when the zero-size image isn\u0027t a volume snapshot. default values on the `.get()` calls would handle it: `get(\u0027block_device_mapping\u0027, [])` and `get(\u0027volume_size\u0027, 0)`.","commit_id":"962fc2339e6c82eb12a47f1540e66505c7a3e61f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9b7ecc79ad3cdc271f87ea7021acb3b7b4d71aa9","unresolved":true,"context_lines":[{"line_number":3760,"context_line":"        if image_size \u003d\u003d 0:"},{"line_number":3761,"context_line":"            # If the image size is 0, it could be a metadata reference"},{"line_number":3762,"context_line":"            # of a volume snapshot"},{"line_number":3763,"context_line":"            bdms \u003d image[\u0027properties\u0027].get(\u0027block_device_mapping\u0027)"},{"line_number":3764,"context_line":"            # If the BDM is of root volume, get the volume_size"},{"line_number":3765,"context_line":"            boot_bdm \u003d [bdm for bdm in bdms if ("},{"line_number":3766,"context_line":"                bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027snapshot\u0027 and"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff924f5b_d95b7224","line":3763,"in_reply_to":"3b0973a1_6c521745","updated":"2026-04-15 13:05:12.000000000","message":"```\n \u0027x\u0027 in None\nTraceback (most recent call last):\n  File \"\u003cpython-input-1\u003e\", line 1, in \u003cmodule\u003e\n    \u0027x\u0027 in None\nTypeError: argument of type \u0027NoneType\u0027 is not iterable\n```\nyep this is valid.\n\nill quickly respin it for the merge conflict and we can apply your suggested fix as well.","commit_id":"962fc2339e6c82eb12a47f1540e66505c7a3e61f"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8c0b25b9965b160d15463f86bb1fab8b22d4c275","unresolved":true,"context_lines":[{"line_number":6105,"context_line":"                exception.BuildAbortException,"},{"line_number":6106,"context_line":"                self.compute._rebuild_volume_backed_instance,"},{"line_number":6107,"context_line":"                self.context, instance, bdms, uuids.image_id,"},{"line_number":6108,"context_line":"            )"},{"line_number":6109,"context_line":""},{"line_number":6110,"context_line":"    @mock.patch.object(objects.Instance, \u0027save\u0027, return_value\u003dNone)"},{"line_number":6111,"context_line":"    @mock.patch.object(fake_driver.SmallFakeDriver, \u0027detach_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"42fd7b13_7f963270","line":6108,"updated":"2025-04-21 14:30:43.000000000","message":"These tests feel mocked to the point of near pointlessness. I know they are actually tickling the new conditional, but it\u0027s a lot of work and synthetic setup. Could we not have a functional reproducer and fix for this to make sure we\u0027re hitting it before the fix and that it works after?","commit_id":"3f2bba901b85b8b2607b6b661ede5db889c1e47a"}],"releasenotes/notes/fix-rebuild-image-snapshot-2d2aea8517edb1bc.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"12576e7315e0d9351dd829ab65f979d3b92b1436","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed issue when trying to rebuild a volume backed server"},{"line_number":5,"context_line":"    with an image snapshot of the server. More information about"},{"line_number":6,"context_line":"    the issue can be found in `bug 2062127`_."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    .. _bug 2062127: https://bugs.launchpad.net/nova/+bug/2062127"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"0c8530da_aad27b8f","line":6,"range":{"start_line":4,"start_character":0,"end_line":6,"end_character":45},"updated":"2025-04-17 11:17:37.000000000","message":"This is less helpful than I was hoping.\n\nNormally we want to include enough info in the release so that you don\u0027t need to click on any links to understand the underlying issue\nLinks should only be for extra context.\n\nThe commit message does a pretty good job of this\n\n```suggestion\n    When we create a server snapshot of a volume backed\n    server, it creates a zero-sized metadata reference in\n    glance that points to a volume snapshot in Cinder.\n    When trying to rebuild a server with such an image,\n    the size needs to be fetched from the volume instead\n    of the image. This is now fixed, see `bug 2062127`_ for\n    More information about the issue.\n```","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"01f66a953338dbc79aa0bb980396ef6e43d3bafa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed issue when trying to rebuild a volume backed server"},{"line_number":5,"context_line":"    with an image snapshot of the server. More information about"},{"line_number":6,"context_line":"    the issue can be found in `bug 2062127`_."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    .. _bug 2062127: https://bugs.launchpad.net/nova/+bug/2062127"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"36f5b208_b4d5794a","line":6,"range":{"start_line":4,"start_character":0,"end_line":6,"end_character":45},"in_reply_to":"0c8530da_aad27b8f","updated":"2025-04-17 11:48:06.000000000","message":"Done","commit_id":"42e44f126d8d01f110618773cfc082ea1e008f52"}]}
