)]}'
{"/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"}],"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":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":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"}]}
