)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"37f66b1a9b288cb5ced84b605e44a79e026e9b1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"734d81ba_1a468875","updated":"2026-03-04 14:36:36.000000000","message":"Hey Hongp, thanks for your contribution. This change affects a very sensitive part of the code. Although it\u0027s just one line, the side effects are a bit hard to predict. I would like to see a few unit tests emulating the scenario you described as failing, and then apply your change to ensure it passes.","commit_id":"5e6486dc591beacdf948921b2cc64889e2204140"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"d4f1a9c6747f1d2bb38309b1381fc1ba1414cab0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d237c228_e5312d8e","in_reply_to":"734d81ba_1a468875","updated":"2026-03-05 14:59:14.000000000","message":"ack","commit_id":"5e6486dc591beacdf948921b2cc64889e2204140"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"dd24a537063e96aeb2e29e568b1cf6bd40358829","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c6bb7aa9_782cc3b6","in_reply_to":"d237c228_e5312d8e","updated":"2026-03-11 03:40:44.000000000","message":"@erlon.rodrigues.cruz@canonical.com I have added the unit test as per your feedback. Verified that the test reproduces the issue (fails) without the fix and passes successfully with the patch. Ready for your review.","commit_id":"5e6486dc591beacdf948921b2cc64889e2204140"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"2bfa57bf2568b5df59b85a6b0b73993aa6dece43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a057bf0f_5e7b8643","updated":"2026-03-06 06:35:10.000000000","message":"Erlon, thanks for your feedback. I\u0027ve added a test case.\n\nIn this test, I implemented a flow where a snapshot is created and deleted in a different project. I avoided the \u0027transfer\u0027 or \u0027revert\u0027 flows because transferring a volume after a snapshot is created (and then deleted) can cause cascade deletion failures in the original project.","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"5d8435fc5fc0a8b9766fd28a0278b7eacbdf866e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8993750a_311d10fa","updated":"2026-03-06 14:44:45.000000000","message":"Forgot the +1 with the review.","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"3359e768fed079240ad42fdd99e58f34b9e5163a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"04f0d464_5e7f0971","updated":"2026-03-18 17:16:04.000000000","message":"Tested locally and this appears to work.  Tests, release note, CI all look okay.  I\"m not a database expert though.  As best I can tell this is a good patch.","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"c44409f7e4dccb26470b75d957bb6e3298cad7ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d2af70ed_5095f03d","updated":"2026-03-06 14:44:00.000000000","message":"This patch LGTM in terms of just reading it.  I don\u0027t fully understand the internals here, though, so this is not a directly functional review.","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"cc67ecd33ce40ae544495f676644a721cec21b30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f1979947_80fe366c","updated":"2026-03-07 04:16:05.000000000","message":"recheck","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"43dc6d5cc88342e4fc3f6b39e98ab29cd2287f32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"35b047c9_f29a8f5e","updated":"2026-03-06 14:47:59.000000000","message":"recheck - looks like the pep8, unit test jobs are working now","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"88858f3e4e25628b40bd8234a3afadad6cac2ac2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"27750977_3479911c","updated":"2026-03-18 14:31:24.000000000","message":"run-Quobyte CI","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"15fa836bb0fb5599ddcb1ee3dace791590691687","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"752f5188_8453fa28","in_reply_to":"d2af70ed_5095f03d","updated":"2026-03-08 08:42:35.000000000","message":"Thanks for the review! I\u0027ve verified this with both unit tests and Tempest, and everything is working as expected. And also currently using these changes in our  environment without any issues.","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"b5dfea7bd51490293f01accfe5d6aa3cb999584c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8251f628_6b412cfc","updated":"2026-04-17 15:43:46.000000000","message":"LGTM. So the expected behaviour of that method is to return the volumes that have snapshots tied to other projects to make the cascade volume deletion work.","commit_id":"81b5a70d592baeba684ce5e862ae008cb2944291"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9601bdb7fc5a45ff8eab8bb94cc933e451227674","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c7a8c381_3f392a3f","updated":"2026-04-17 15:44:49.000000000","message":"Provide my comment.","commit_id":"81b5a70d592baeba684ce5e862ae008cb2944291"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9601bdb7fc5a45ff8eab8bb94cc933e451227674","unresolved":true,"context_lines":[{"line_number":3440,"context_line":"def volume_has_other_project_snp_filter():"},{"line_number":3441,"context_line":"    return sql.exists().where("},{"line_number":3442,"context_line":"        and_("},{"line_number":3443,"context_line":"            ~models.Snapshot.deleted,"},{"line_number":3444,"context_line":"            models.Volume.id \u003d\u003d models.Snapshot.volume_id,"},{"line_number":3445,"context_line":"            models.Volume.project_id !\u003d models.Snapshot.project_id,"},{"line_number":3446,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"3271a721_cf17f524","line":3443,"range":{"start_line":3443,"start_character":12,"end_line":3443,"end_character":37},"updated":"2026-04-17 15:44:49.000000000","message":"This change excludes deleted snapshots, but the fix description claims it fix the cascade issue for non-admin users. How does this fix address the issue for non-admin users.","commit_id":"81b5a70d592baeba684ce5e862ae008cb2944291"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"568a37583a6d739d144b07ff02aa33cc5eeb9df7","unresolved":true,"context_lines":[{"line_number":3440,"context_line":"def volume_has_other_project_snp_filter():"},{"line_number":3441,"context_line":"    return sql.exists().where("},{"line_number":3442,"context_line":"        and_("},{"line_number":3443,"context_line":"            ~models.Snapshot.deleted,"},{"line_number":3444,"context_line":"            models.Volume.id \u003d\u003d models.Snapshot.volume_id,"},{"line_number":3445,"context_line":"            models.Volume.project_id !\u003d models.Snapshot.project_id,"},{"line_number":3446,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"5d67e08d_ffb5c2ea","line":3443,"range":{"start_line":3443,"start_character":12,"end_line":3443,"end_character":37},"in_reply_to":"3271a721_cf17f524","updated":"2026-04-19 06:46:53.000000000","message":"@gawasthi2010@gmail.com thanks for the review. To clarify, this function is specifically called at [cinder/volume/api.py:495]  to check if a volume can be deleted.\n\nThe issue was that even when snapshots were already soft-deleted especially those from other projects, they were still being retrieved by this DB query. This caused the validation logic to incorrectly determine that \u0027active\u0027 snapshots still existed, blocking the volume deletion with a dependency error.\n\nBy adding `~models.Snapshot.deleted` to the filter, we ensure that only actual, non-deleted snapshots are considered. This allows non-admin users to delete their volumes successfully without being blocked by soft-deleted records that they shouldn\u0027t be seeing as active dependencies.\n\n[cinder/volume/api.py:495]: https://opendev.org/openstack/cinder/src/commit/c84f0e05ce4b7c6afffa4616ae5f01711f2a7626/cinder/volume/api.py#L495","commit_id":"81b5a70d592baeba684ce5e862ae008cb2944291"}],"releasenotes/notes/fixed_issue_deleting_a_volume_with_cascade-a2feefba5234a4b8.yaml":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"839f3d314e53d870a6784f2a55dcbae65e34166c","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 an issue where deleting a volume with ``cascade\u003dtrue`` failed"},{"line_number":5,"context_line":"    for member users after a snapshot revert followed by a transfer."},{"line_number":6,"context_line":"    Admin users could still perform cascade deletion (including across"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"a84be2c3_364a047e","line":3,"updated":"2026-04-14 20:42:32.000000000","message":"Please mention bug 2125312 in the release note here.","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"b0be97b76d276fb84862f12bc933d31004067a1b","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 an issue where deleting a volume with ``cascade\u003dtrue`` failed"},{"line_number":5,"context_line":"    for member users after a snapshot revert followed by a transfer."},{"line_number":6,"context_line":"    Admin users could still perform cascade deletion (including across"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"71bd98f2_b02ee5ef","line":3,"in_reply_to":"a84be2c3_364a047e","updated":"2026-04-15 02:09:33.000000000","message":"@eharney@redhat.com I added it, thanks","commit_id":"914dae87fb038fc5d9c2c80b0691f6f517520f44"}]}
