)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"e0c491b14e9697df92cef76dd5a3f41e63c5af58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e6db41dd_c481ddfa","updated":"2026-06-24 07:20:37.000000000","message":"LGTM, two typos though.","commit_id":"f69786b0c2fd33092c4955c5d1c330ed9a181eee"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d452a0bcfe7fe31fe93b7fac9bd57f4ede70c821","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"36ce624a_e2600c01","updated":"2026-08-11 10:12:05.000000000","message":"I think it would be good to also have some functional test for the new code path, not sure if that would need to be added in the same change, though","commit_id":"68d5455c982e62beefd71b1999ce3c1235041b89"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3d60e3af239bc8000fe90b675d1dced9edbbf81b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a6df5051_64e6106f","updated":"2026-08-13 05:27:28.000000000","message":"recheck failure in tempest-slow looks unrelated, tempest.scenario.test_volume_migrate_attached.TestVolumeMigrateRetypeAttached.test_volume_retype_attached_data_volume","commit_id":"68d5455c982e62beefd71b1999ce3c1235041b89"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"92b78f030d87a4b6e70c84e6ae9772c6ffae60f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e81b7b2f_ee9c2a40","updated":"2026-08-11 10:14:59.000000000","message":"recheck logs expired, would like to check the cinder-plugin-ceph-tempest-mn-aa failure in particular","commit_id":"68d5455c982e62beefd71b1999ce3c1235041b89"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"234226433366b6e22b204375e0cd371188cd2ea4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f0b976b0_a59c38b9","updated":"2026-08-22 05:27:42.000000000","message":"recheck tempest.scenario.test_volume_migrate_attached.TestVolumeMigrateRetypeAttached.test_volume_migrate_attached_data_volume again","commit_id":"68d5455c982e62beefd71b1999ce3c1235041b89"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"e0c491b14e9697df92cef76dd5a3f41e63c5af58","unresolved":true,"context_lines":[{"line_number":136,"context_line":"                    \u0027concurrently on this volume service.\u0027),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027rbd_glance_pool\u0027, default\u003d\u0027\u0027,"},{"line_number":138,"context_line":"               help\u003d\u0027Name of the Glance RBD pool in the same Ceph cluster. \u0027"},{"line_number":139,"context_line":"                    \u0027When set, copy_volume_to_image try to perform a \u0027"},{"line_number":140,"context_line":"                    \u0027server-side clone of the volume into this rbd pool and \u0027"},{"line_number":141,"context_line":"                    \u0027register the image location with Glance instead of \u0027"},{"line_number":142,"context_line":"                    \u0027streaming the data over the network. Requires that \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"d0bac7c3_a774deb3","line":139,"updated":"2026-06-24 07:20:37.000000000","message":"s/try/tries/","commit_id":"f69786b0c2fd33092c4955c5d1c330ed9a181eee"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d452a0bcfe7fe31fe93b7fac9bd57f4ede70c821","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                    \u0027concurrently on this volume service.\u0027),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027rbd_glance_pool\u0027, default\u003d\u0027\u0027,"},{"line_number":138,"context_line":"               help\u003d\u0027Name of the Glance RBD pool in the same Ceph cluster. \u0027"},{"line_number":139,"context_line":"                    \u0027When set, copy_volume_to_image try to perform a \u0027"},{"line_number":140,"context_line":"                    \u0027server-side clone of the volume into this rbd pool and \u0027"},{"line_number":141,"context_line":"                    \u0027register the image location with Glance instead of \u0027"},{"line_number":142,"context_line":"                    \u0027streaming the data over the network. Requires that \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"e200577b_9ae4a1cc","line":139,"in_reply_to":"d0bac7c3_a774deb3","updated":"2026-08-11 10:12:05.000000000","message":"Done","commit_id":"f69786b0c2fd33092c4955c5d1c330ed9a181eee"},{"author":{"_account_id":33742,"name":"Jonas Schäfer","email":"jonas.schaefer@cloudandheat.com","username":"jssfr"},"change_message_id":"e0c491b14e9697df92cef76dd5a3f41e63c5af58","unresolved":true,"context_lines":[{"line_number":140,"context_line":"                    \u0027server-side clone of the volume into this rbd pool and \u0027"},{"line_number":141,"context_line":"                    \u0027register the image location with Glance instead of \u0027"},{"line_number":142,"context_line":"                    \u0027streaming the data over the network. Requires that \u0027"},{"line_number":143,"context_line":"                    \u0027the cinder service user hold the Glance \"service\" \u0027"},{"line_number":144,"context_line":"                    \u0027role. Empty (default) keeps the legacy streaming upload.\u0027)"},{"line_number":145,"context_line":"]"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"15b3a9d8_e3dd93ff","line":143,"updated":"2026-06-24 07:20:37.000000000","message":"s/hold/holds/","commit_id":"f69786b0c2fd33092c4955c5d1c330ed9a181eee"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d452a0bcfe7fe31fe93b7fac9bd57f4ede70c821","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    \u0027server-side clone of the volume into this rbd pool and \u0027"},{"line_number":141,"context_line":"                    \u0027register the image location with Glance instead of \u0027"},{"line_number":142,"context_line":"                    \u0027streaming the data over the network. Requires that \u0027"},{"line_number":143,"context_line":"                    \u0027the cinder service user hold the Glance \"service\" \u0027"},{"line_number":144,"context_line":"                    \u0027role. Empty (default) keeps the legacy streaming upload.\u0027)"},{"line_number":145,"context_line":"]"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"71dc0772_47a601fc","line":143,"in_reply_to":"15b3a9d8_e3dd93ff","updated":"2026-08-11 10:12:05.000000000","message":"Done","commit_id":"f69786b0c2fd33092c4955c5d1c330ed9a181eee"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"c13d5624683991d07ff65fc90c6880d6f70b04d0","unresolved":true,"context_lines":[{"line_number":2133,"context_line":"            with RADOSClient(self, glance_pool) as dst_client:"},{"line_number":2134,"context_line":"                dst_image \u003d self.rbd.Image(dst_client.ioctx, image_id)"},{"line_number":2135,"context_line":"                try:"},{"line_number":2136,"context_line":"                    dst_image.flatten()"},{"line_number":2137,"context_line":"                    dst_image.create_snap(glance_snap)"},{"line_number":2138,"context_line":"                    dst_image.protect_snap(glance_snap)"},{"line_number":2139,"context_line":"                finally:"}],"source_content_type":"text/x-python","patch_set":3,"id":"564ac9af_993812da","line":2136,"updated":"2026-06-29 14:59:05.000000000","message":"flatten can be long-running for large volumes and this path can be triggered concurrently by multiple uploads.May be calling flatten for single image for multiple times. Can you check if any optimization is present.","commit_id":"6fa42c81eca37c647e85cc3adcf3890f5c1a108f"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"c13d5624683991d07ff65fc90c6880d6f70b04d0","unresolved":true,"context_lines":[{"line_number":2180,"context_line":"                            dst_image.close()"},{"line_number":2181,"context_line":"                    except self.rbd.ImageNotFound:"},{"line_number":2182,"context_line":"                        pass"},{"line_number":2183,"context_line":"                    self.RBDProxy().remove(dst_client.ioctx, image_id)"},{"line_number":2184,"context_line":"            except Exception:"},{"line_number":2185,"context_line":"                LOG.warning(\"Failed to clean up partial image %(img)s in \""},{"line_number":2186,"context_line":"                            \"pool %(pool)s.\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7f834a90_7756b9cc","line":2183,"updated":"2026-06-29 14:59:05.000000000","message":"remove is executed after ImageNotFound with pass","commit_id":"6fa42c81eca37c647e85cc3adcf3890f5c1a108f"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d452a0bcfe7fe31fe93b7fac9bd57f4ede70c821","unresolved":false,"context_lines":[{"line_number":2180,"context_line":"                            dst_image.close()"},{"line_number":2181,"context_line":"                    except self.rbd.ImageNotFound:"},{"line_number":2182,"context_line":"                        pass"},{"line_number":2183,"context_line":"                    self.RBDProxy().remove(dst_client.ioctx, image_id)"},{"line_number":2184,"context_line":"            except Exception:"},{"line_number":2185,"context_line":"                LOG.warning(\"Failed to clean up partial image %(img)s in \""},{"line_number":2186,"context_line":"                            \"pool %(pool)s.\","}],"source_content_type":"text/x-python","patch_set":3,"id":"de4d8bd0_00e573c8","line":2183,"in_reply_to":"7f834a90_7756b9cc","updated":"2026-08-11 10:12:05.000000000","message":"Done","commit_id":"6fa42c81eca37c647e85cc3adcf3890f5c1a108f"}]}
