)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"5c86a1bb35e0bba19170f8e670f59c50df10edbc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2e8e7795_ad66d150","updated":"2026-07-02 22:51:53.000000000","message":"recheck","commit_id":"3f71a5a487b3e50e19aa40a91e6affd9c1f2f55d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"9de53869bfa4b179ceedb1ecb661065fe069259c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7f6963d1_4bd4d9b4","updated":"2026-07-02 18:52:47.000000000","message":"recheck","commit_id":"3f71a5a487b3e50e19aa40a91e6affd9c1f2f55d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"8f224a97cd0d9d0dc802799d7fa9c095a6687159","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8d0d0b5d_fea60b80","updated":"2026-07-03 04:54:40.000000000","message":"recheck","commit_id":"3f71a5a487b3e50e19aa40a91e6affd9c1f2f55d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"ab0656252a36879763f3d8444d427ef7726f9c28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"03e8e230_909ebf8e","updated":"2026-07-02 21:27:16.000000000","message":"run Pure Storage CI","commit_id":"3f71a5a487b3e50e19aa40a91e6affd9c1f2f55d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"061c226638084371d4a8a24a497a24188d2b3a32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fe6cef30_6386bacb","updated":"2026-07-02 23:49:05.000000000","message":"run Pure Storage CI","commit_id":"3f71a5a487b3e50e19aa40a91e6affd9c1f2f55d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"8292ac3eec002d03d68a146d59d0479bc1493618","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"717e76e3_52346155","updated":"2026-07-07 20:16:04.000000000","message":"run Everpure CI","commit_id":"1a11cd566f9040ae808ffc605b2def948662852c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"96309df22086816b049204713a26bb24b05fd4a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b8c038c3_f3b7c4ec","updated":"2026-08-05 22:44:45.000000000","message":"recheck","commit_id":"a724539852a50c298ee6e28594aa96c8278bd924"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"b331315be2853b400b1f6808161b381d01158a2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ee99e191_3f8ceb98","updated":"2026-08-06 03:39:30.000000000","message":"recheck","commit_id":"a724539852a50c298ee6e28594aa96c8278bd924"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"5f9d4781909bb808368633d1f9b6ca514c955f7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"161a330e_a999c6e0","updated":"2026-08-16 20:44:10.000000000","message":"recheck","commit_id":"0e30a6478f1d212378ec428cad9440cf931ce22d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"bfb8f73f712014430edbd24adad22655665ab0f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b6b27e6f_2f1a8daf","updated":"2026-08-16 18:25:24.000000000","message":"recheck","commit_id":"0e30a6478f1d212378ec428cad9440cf931ce22d"}],"cinder/privsep/lvm.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"faff131686016fb80df164c618f3d5b6bfc5dee8","unresolved":true,"context_lines":[{"line_number":45,"context_line":"    \"\"\""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        processutils.execute(\u0027dmsetup\u0027, \u0027message\u0027, tpool_device, \u00270\u0027,"},{"line_number":48,"context_line":"                             \u0027release_metadata_snap\u0027)"},{"line_number":49,"context_line":"    except processutils.ProcessExecutionError:"},{"line_number":50,"context_line":"        pass"},{"line_number":51,"context_line":"    processutils.execute(\u0027dmsetup\u0027, \u0027message\u0027, tpool_device, \u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"c8be395b_c52ac545","line":48,"updated":"2026-08-03 05:23:12.000000000","message":"The unconditional release_metadata_snap before every reservation looks unsafe.Would it be safer to attempt reserve_metadata_snap first and, if the slot is busy, return a failure so get_cbt_extents() uses its existing full-scan fallback? A stale reservation should only be released when ownership or staleness can be established.","commit_id":"1a11cd566f9040ae808ffc605b2def948662852c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"8302b9f965c57da67254133346d81bec5ccd619c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    \"\"\""},{"line_number":46,"context_line":"    try:"},{"line_number":47,"context_line":"        processutils.execute(\u0027dmsetup\u0027, \u0027message\u0027, tpool_device, \u00270\u0027,"},{"line_number":48,"context_line":"                             \u0027release_metadata_snap\u0027)"},{"line_number":49,"context_line":"    except processutils.ProcessExecutionError:"},{"line_number":50,"context_line":"        pass"},{"line_number":51,"context_line":"    processutils.execute(\u0027dmsetup\u0027, \u0027message\u0027, tpool_device, \u00270\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da0a8085_452503e3","line":48,"in_reply_to":"c8be395b_c52ac545","updated":"2026-08-05 21:59:10.000000000","message":"Fair comment - I will address","commit_id":"1a11cd566f9040ae808ffc605b2def948662852c"}],"cinder/volume/drivers/lvm.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"faff131686016fb80df164c618f3d5b6bfc5dee8","unresolved":true,"context_lines":[{"line_number":692,"context_line":"                    return None"},{"line_number":693,"context_line":"            extents \u003d self._thin_cbt_diff(from_snapshot, tpool_device,"},{"line_number":694,"context_line":"                                          metadata_device, from_id, to_id)"},{"line_number":695,"context_line":"        except (processutils.ProcessExecutionError, etree.XMLSyntaxError,"},{"line_number":696,"context_line":"                exception.VolumeDeviceNotFound, ValueError, KeyError) as e:"},{"line_number":697,"context_line":"            LOG.warning(\"CBT diff for volume %(vol)s failed; backup will \""},{"line_number":698,"context_line":"                        \"fall back: %(err)s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"fef0e876_b6f8e103","line":695,"updated":"2026-08-03 05:23:12.000000000","message":"i think TypeError also possible","commit_id":"1a11cd566f9040ae808ffc605b2def948662852c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"8302b9f965c57da67254133346d81bec5ccd619c","unresolved":false,"context_lines":[{"line_number":692,"context_line":"                    return None"},{"line_number":693,"context_line":"            extents \u003d self._thin_cbt_diff(from_snapshot, tpool_device,"},{"line_number":694,"context_line":"                                          metadata_device, from_id, to_id)"},{"line_number":695,"context_line":"        except (processutils.ProcessExecutionError, etree.XMLSyntaxError,"},{"line_number":696,"context_line":"                exception.VolumeDeviceNotFound, ValueError, KeyError) as e:"},{"line_number":697,"context_line":"            LOG.warning(\"CBT diff for volume %(vol)s failed; backup will \""},{"line_number":698,"context_line":"                        \"fall back: %(err)s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"26adc347_0df9d237","line":695,"in_reply_to":"fef0e876_b6f8e103","updated":"2026-08-05 21:59:10.000000000","message":"Acknowledged","commit_id":"1a11cd566f9040ae808ffc605b2def948662852c"}]}
