)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"141031148f6497c3a68f54ac4d508e0d1fc03924","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fce9145e_23f8c0fb","updated":"2026-10-05 11:23:36.000000000","message":"@jayaanand.borra@netapp.com and @anthony.galica@hitachivantara.com thanks for your feedback and you time on reviewing the patch. I have responded on the feedback. Please have a look and confirm on the release notes query. Once we get confirmation we will update the patch with release notes.","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"5a870bc67fb04b55440182340e816bd36b857e9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a549f565_0e6f4a04","updated":"2026-10-02 14:38:05.000000000","message":"I\u0027m running with the assumption here that the background copy is, indeed, online like the comments indicate.  So code-wise this patch LGTM, and CI/Zuul are passing.\n\n\n-1 is because you need release notes.  Will +2 once you have those.","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"276da0a208dcc1c169a192caec450be5f706e960","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"762942d7_67b24b88","updated":"2026-09-30 11:48:40.000000000","message":"PR is open for review.","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"e8e2bea822c773e561398348effa350cf98f3f02","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bddce050_8aae878f","in_reply_to":"82a72e8a_03fbb344","updated":"2026-10-07 03:52:54.000000000","message":"Acknowledged the feedback, we will add release notes and update the patch. Thanks agalica.","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"d57a60362dfaf09d1c7feebce8fc48639bf12441","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"82a72e8a_03fbb344","in_reply_to":"92470cf3_415b2291","updated":"2026-10-05 23:59:07.000000000","message":"It depends on the bug and whether or not it\u0027s user facing, but I would think you\u0027d want release notes if a fix includes a good performance enhancement or fix for something broken that a customer might see.\n\nThis is from a different openstack project, but is relevant:\nhttps://docs.openstack.org/adjutant/train/release-notes.html\n\nYou can also see in the release notes section that plenty of bugs have them!","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"141031148f6497c3a68f54ac4d508e0d1fc03924","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"92470cf3_415b2291","in_reply_to":"a549f565_0e6f4a04","updated":"2026-10-05 11:23:36.000000000","message":"Thanks agalica for reviewing the patch and sharing feedback. We will add release notes for it. But ideally we have seen release notes are added only for features and as it is defect do we still need it? The original old driver had this behavior and we are maintaining parity with this change. Please confirm whether we have to add it in release notes?","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"796a8f482148941e952a9bd45da64baf2f30e30d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f40383d4_0e60088f","in_reply_to":"bddce050_8aae878f","updated":"2026-10-07 03:56:16.000000000","message":"Added the release notes for this bug. Resolved all the feedback provided.","commit_id":"5e253ba1677e7962b7048ad48821a9ba08da8964"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"7e679d4e9a9936da955f9344e7855b6cddc2d2ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b1396932_05882366","updated":"2026-10-05 12:18:44.000000000","message":"Addressed the UT related feedback and updated the patchset.","commit_id":"b4874f49b3b594978414eea3374b29e9db788738"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"3d200ce94c9603826a8b6444ec31a5d2acfe0d68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c6ec4f34_960515ac","updated":"2026-10-05 14:52:17.000000000","message":"recheck cinder-tox-functional-py313-threading","commit_id":"b4874f49b3b594978414eea3374b29e9db788738"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"796a8f482148941e952a9bd45da64baf2f30e30d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2525820a_5d3d742e","updated":"2026-10-07 03:56:16.000000000","message":"@jayaanand.borra@netapp.com and @anthony.galica@hitachivantara.com thanks for reviewing the patch. We have addressed all the feedback provide, can you please re-review the patch and help us move this forward for merge.","commit_id":"0a92c0b337c3a78dde41acb150d1f4d1a28a45eb"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"9e33601da801d610d50e5aa8b54c1794c85bda3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"763261cf_99603b64","in_reply_to":"2525820a_5d3d742e","updated":"2026-10-07 19:18:57.000000000","message":"Ping me again once Zuul has passed and I\u0027ll issue a +2.","commit_id":"0a92c0b337c3a78dde41acb150d1f4d1a28a45eb"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a399ac410039293506fb0c2ad2641ff4df18e650","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4d7b7a85_cb9ae2f9","in_reply_to":"763261cf_99603b64","updated":"2026-10-08 09:45:51.000000000","message":"@anthony.galica@hitachivantara.com can you please approve now, zuul has passed.","commit_id":"0a92c0b337c3a78dde41acb150d1f4d1a28a45eb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"409215b950d4188835f32ed185e9436e8fc205e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7bcdea9e_77d20873","updated":"2026-10-07 06:01:33.000000000","message":"The bug report is not useful as evidence, it lacks a clear reproduction, expected/actual behavior, and measurable impact. \n\nPlease add those details so the change can be validated - there are guidelines for creating bugs.","commit_id":"b64ffe0bd674b9a31cafc3a47ce343257f994d31"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"92f6cc677a7a961aa4bcc6ae563b711b38059c84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a1f4d621_20474639","in_reply_to":"7bcdea9e_77d20873","updated":"2026-10-07 07:10:50.000000000","message":"I have updated the bug with additional details as per the feedback.","commit_id":"b64ffe0bd674b9a31cafc3a47ce343257f994d31"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"9e33601da801d610d50e5aa8b54c1794c85bda3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"49a28357_06bf4d43","updated":"2026-10-07 19:18:57.000000000","message":"+2 pending Zuul passing.","commit_id":"cfe74c117e8c957c912548ac2007cf31aaa0be17"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"92f6cc677a7a961aa4bcc6ae563b711b38059c84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f9e29aa4_23c9f17d","updated":"2026-10-07 07:10:50.000000000","message":"@auniyal@redhat.com we have addressed the feedback and update the patch. Can you please review the patch again. Thanks for your feedback.","commit_id":"cfe74c117e8c957c912548ac2007cf31aaa0be17"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"4c0342aa9771a5d0071e9054f98d33f731a44856","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"14ddf363_ae95692a","updated":"2026-10-07 15:29:46.000000000","message":"Code change LGTM: the online branch now matches hpe_3par_common, the\ndifferent-size path still waits, and both delete-during-copy paths\n(API_ERROR_151 -\u003e stopOnlinePhysicalCopy, API_ERROR_32 -\u003e tss cleanup\n-\u003e VolumeIsBusy) are handled. New UTs pass locally.\n\nBefore I vote, please:\n- Fix the commit message: blank line after the subject, subject under\n  72 chars, body wrapped at 72, ASCII only. Please also state there\n  that only same-size, non-replicated, non-CHAP-backup clones take\n  the early return and larger clones still wait, as jayaanand asked.\n- _can_do_online_clone docstring: the \"not safe for this fast return\"\n  reason for the CHAP exclusion is speculative. The driver never\n  writes the CHAP key; this condition is inherited from 3PAR. Say so.\n- Release note: drop \"In any case,\" and add one sentence on which\n  clones still wait.\n\nI am fine with deferring the encrypted-clone question; the online\ncopy contract covers the rekey attach and 3PAR has relied on it.","commit_id":"cfe74c117e8c957c912548ac2007cf31aaa0be17"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"263a33a931bfce7fa4bcb425a37abb799440f62a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ca58f66b_4c7f4e99","updated":"2026-10-08 05:47:49.000000000","message":"recheck","commit_id":"cfe74c117e8c957c912548ac2007cf31aaa0be17"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a399ac410039293506fb0c2ad2641ff4df18e650","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8cef975d_e3929974","in_reply_to":"14ddf363_ae95692a","updated":"2026-10-08 09:45:51.000000000","message":"@simon@everpuredata.com, we have addressed the comment message as mentioned, updated the commit message and zuul has passed. Can you please approve now?","commit_id":"cfe74c117e8c957c912548ac2007cf31aaa0be17"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"208ddb13e2872ccbadc2f240494e07a705a0ca92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2369ee6b_7e8ac44e","updated":"2026-10-08 11:18:42.000000000","message":"All looks good now. LGTM","commit_id":"de8434d209343e7df1c5547b62ccac7490eff091"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"a399ac410039293506fb0c2ad2641ff4df18e650","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"745eb342_6c5769fd","updated":"2026-10-08 09:45:51.000000000","message":"Request @anthony.galica@hitachivantara.com and @simon@everpuredata.com to approve the patch with +2.","commit_id":"de8434d209343e7df1c5547b62ccac7490eff091"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"d6d133338432be483c6ee5fdae9f8b7b1a09ab73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5aab381b_68ba71fc","updated":"2026-10-26 13:00:02.000000000","message":"Request core reviewers to help us provide +2 and help us move the patch towards merge.","commit_id":"de8434d209343e7df1c5547b62ccac7490eff091"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"1933daf17a1d649a06258dd4e34739f5433ccd67","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"dd397777_a5b46b8f","updated":"2026-10-09 04:40:57.000000000","message":"Thanks @anthony.galica@hitachivantara.com and @simon@everpuredata.com for your votes, we request core reviewers to provide one more +2 and help us moving this forward to merge.","commit_id":"de8434d209343e7df1c5547b62ccac7490eff091"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"3618cc354a033d79c198d2a372bf1e212d5a4bc7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2175424d_8372eaad","updated":"2026-10-12 11:51:43.000000000","message":"Thanks for the feedback and we acknowledged the feedback, but we would prefer to address it in a follow-up patch set. Updating this patch now may make it harder to retain the existing +2, and we would like to keep this change focused and moving forward. I’ll make sure the requested changes are included in the next follow-up patch.","commit_id":"de8434d209343e7df1c5547b62ccac7490eff091"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"d0403cc0a1333c78151d7ab492151f8ee4391ba2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"73e03a1c_1bbfae3b","updated":"2026-10-12 11:37:45.000000000","message":"not-blokcing, but test is missing","commit_id":"de8434d209343e7df1c5547b62ccac7490eff091"}],"cinder/tests/unit/volume/drivers/hpe/test_alletramp.py":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"409215b950d4188835f32ed185e9436e8fc205e7","unresolved":true,"context_lines":[{"line_number":875,"context_line":"            self.assertIsNotNone(result)"},{"line_number":876,"context_line":"            self.assertEqual(result, expected_result)"},{"line_number":877,"context_line":"            mock_create.assert_called_once_with(self.vol, self.vol_other)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    def test_perform_online_clone_returns_without_waiting(self):"},{"line_number":880,"context_line":"        vol_name \u003d self.service._get_alletramp_vol_name(self.vol)"},{"line_number":881,"context_line":"        type_info \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab05d11_4165db5d","line":878,"updated":"2026-10-07 06:01:33.000000000","message":"test_create_cloned_volume only verifies driver-to-service delegation. The new tests call _perform_online_clone() directly, so they do not prove that create_cloned_volume() selects the async path for same-size clones or retains the wait path for other cases. Please add service-level coverage for both branches.","commit_id":"b64ffe0bd674b9a31cafc3a47ce343257f994d31"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"d0403cc0a1333c78151d7ab492151f8ee4391ba2","unresolved":true,"context_lines":[{"line_number":875,"context_line":"            self.assertIsNotNone(result)"},{"line_number":876,"context_line":"            self.assertEqual(result, expected_result)"},{"line_number":877,"context_line":"            mock_create.assert_called_once_with(self.vol, self.vol_other)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    def test_perform_online_clone_returns_without_waiting(self):"},{"line_number":880,"context_line":"        vol_name \u003d self.service._get_alletramp_vol_name(self.vol)"},{"line_number":881,"context_line":"        type_info \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"9adb5d2f_d579bd35","line":878,"in_reply_to":"97c3d902_ba77f65d","updated":"2026-10-12 11:37:45.000000000","message":"_can_do_online_clone is still not tested for replicated or CHAP-enabled backup-source clones.\nplease add tests for both cases to verify they call _copy_cloned_volume_and_wait().","commit_id":"b64ffe0bd674b9a31cafc3a47ce343257f994d31"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"3618cc354a033d79c198d2a372bf1e212d5a4bc7","unresolved":false,"context_lines":[{"line_number":875,"context_line":"            self.assertIsNotNone(result)"},{"line_number":876,"context_line":"            self.assertEqual(result, expected_result)"},{"line_number":877,"context_line":"            mock_create.assert_called_once_with(self.vol, self.vol_other)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    def test_perform_online_clone_returns_without_waiting(self):"},{"line_number":880,"context_line":"        vol_name \u003d self.service._get_alletramp_vol_name(self.vol)"},{"line_number":881,"context_line":"        type_info \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"c1d48d2e_d77200e9","line":878,"in_reply_to":"9adb5d2f_d579bd35","updated":"2026-10-12 11:51:43.000000000","message":"Thanks for the feedback and we acknowledged the feedback, but we would prefer to address it in a follow-up patch set. Updating this patch now may make it harder to retain the existing +2, and we would like to keep this change focused and moving forward. I’ll make sure the requested changes are included in the next follow-up patch.","commit_id":"b64ffe0bd674b9a31cafc3a47ce343257f994d31"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"92f6cc677a7a961aa4bcc6ae563b711b38059c84","unresolved":false,"context_lines":[{"line_number":875,"context_line":"            self.assertIsNotNone(result)"},{"line_number":876,"context_line":"            self.assertEqual(result, expected_result)"},{"line_number":877,"context_line":"            mock_create.assert_called_once_with(self.vol, self.vol_other)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    def test_perform_online_clone_returns_without_waiting(self):"},{"line_number":880,"context_line":"        vol_name \u003d self.service._get_alletramp_vol_name(self.vol)"},{"line_number":881,"context_line":"        type_info \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"97c3d902_ba77f65d","line":878,"in_reply_to":"bab05d11_4165db5d","updated":"2026-10-07 07:10:50.000000000","message":"Added additional UTs.","commit_id":"b64ffe0bd674b9a31cafc3a47ce343257f994d31"}],"cinder/volume/drivers/hpe/alletramp_service.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"fca536097c1c0f48b574c6866f8ffb56c8e2c8ad","unresolved":true,"context_lines":[{"line_number":1478,"context_line":"            \u0027id\u003d%(id)s, task_id\u003d%(task_id)s.\u0027,"},{"line_number":1479,"context_line":"            {\u0027id\u0027: volume[\u0027id\u0027], \u0027task_id\u0027: task_id})"},{"line_number":1480,"context_line":""},{"line_number":1481,"context_line":"        task_status \u003d self._wait_for_task_completion(task_id)"},{"line_number":1482,"context_line":"        if task_status[\u0027status\u0027] !\u003d constants.TASK_DONE:"},{"line_number":1483,"context_line":"            dbg \u003d {\u0027status\u0027: task_status, \u0027id\u0027: volume[\u0027id\u0027]}"},{"line_number":1484,"context_line":"            msg \u003d _(\u0027Copy volume task failed: create_cloned_volume: \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f7504a0_3aebe773","side":"PARENT","line":1481,"updated":"2026-10-02 15:50:26.000000000","message":"Removing this wait matches the comment in create_cloned_volume()\n(online copy is a background task that makes the volume available\nimmediately) and matches two existing HPE paths that already return\nwithout waiting for a non-replicated online copy:\n\n- hpe_3par_common.py create_cloned_volume(), after _copy_volume()\n  at line 2739, returns at 2764 with no _wait_for_task_completion()\n- alletramp_service.py create_group_from_src(), which waits only\n  when group.is_replicated (lines 5905-5906)\n\n_copy_volume() still passes online\u003dTrue (line 1687) and still raises\nif copyVolume itself fails. The deleted block is the only place this\npath checks the task reached TASK_DONE (constants.TASK_DONE \u003d 1).\nAfter this returns, CreateVolumeOnFinishTask marks the volume\navailable (cinder/volume/flows/manager/create_volume.py:1328-1329).\nA task that later goes failed or cancelled is not reported.\n\nPlease keep the early return, and add the following before merge:\n\n1. Release note. doc/source/contributor/releasenotes.rst says a note\n   is required when current behavior changes. This wait has been in\n   _perform_online_clone since the driver was added (4b6962f074), so\n   this is a behavior change for shipped Alletra MP, not a revert.\n   The note should say that a same-size clone is complete once the\n   array accepts the online copy, and that a later task failure is\n   not surfaced to Cinder.\n\n2. Confirm the array contract. The in-tree comment says the volume\n   is instantly available. Please confirm an Alletra online VV copy\n   is consistent for read and attach before the task is DONE. Also\n   confirm the array rejects deletion of the tss- snapshot while\n   that task is active. _create_temp_snapshot() creates that snap\n   with expirationHours\u003d1 (line 3007) and _copy_volume() copies from\n   it. For an explicit clone, VolumeManager holds\n   \"{source_volid}-delete_volume\" only until this method returns\n   (manager.py:798-820). delete_volume() uses the same lock\n   (manager.py:927), so a source delete can start while the copy is\n   still running. On HTTPConflict containing API_ERROR_32,\n   _cleanup_temp_snapshot_children() deletes tss- snapshots\n   (lines 1794-1770).\n\n3. This speeds only _can_do_online_clone() (lines 1445-1450): equal\n   size, not a replicated type, and not a CHAP-enabled backup.\n   A larger clone still waits in _copy_cloned_volume_and_wait()\n   (line 1517). Please say that in the commit message. Image-cache\n   and cinder:// clones do not hold the source delete lock; their\n   cost today is this wait blocking the volume worker.\n\n4. Same-size encrypted volume clone. _can_do_online_clone() does not\n   look at encryption_key_id. _create_from_source_volume() then\n   attaches the new volume and runs cryptsetup\n   (create_volume.py:661-663). That attach now happens while the\n   copy may still be running. Encrypted image create does not use\n   this path.\n\n5. Unit test. test_alletramp.py only calls _can_do_online_clone when\n   forcing it False (lines 884 and 919). Please assert\n   _perform_online_clone does not call _wait_for_task_completion,\n   still submits the online copy, still does the VVSET add, and\n   still returns the model update, and that the unequal-size path\n   still waits.\n\nextend_volume() (line 685) does not call isOnlinePhysicalCopy()\nbefore grow_volume(). The comment at line 2565 says a volume cannot\nbe resized while it is being copied. After this patch that extend\ncan be requested as soon as the clone is available. Please confirm\nthe array rejects grow during an active online copy.","commit_id":"803dca69e6928c5a1894f2dad7093ddea7e77efb"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"141031148f6497c3a68f54ac4d508e0d1fc03924","unresolved":true,"context_lines":[{"line_number":1478,"context_line":"            \u0027id\u003d%(id)s, task_id\u003d%(task_id)s.\u0027,"},{"line_number":1479,"context_line":"            {\u0027id\u0027: volume[\u0027id\u0027], \u0027task_id\u0027: task_id})"},{"line_number":1480,"context_line":""},{"line_number":1481,"context_line":"        task_status \u003d self._wait_for_task_completion(task_id)"},{"line_number":1482,"context_line":"        if task_status[\u0027status\u0027] !\u003d constants.TASK_DONE:"},{"line_number":1483,"context_line":"            dbg \u003d {\u0027status\u0027: task_status, \u0027id\u0027: volume[\u0027id\u0027]}"},{"line_number":1484,"context_line":"            msg \u003d _(\u0027Copy volume task failed: create_cloned_volume: \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"c6b74d50_5edc37c2","side":"PARENT","line":1481,"in_reply_to":"7f7504a0_3aebe773","updated":"2026-10-05 11:23:36.000000000","message":"Thanks jayaanand for detailed review feedback and thanks for your time on this.\nPlease find our response below: \n\n1) Agree, we will add release notes for it. But ideally we have seen release notes are added only for features and as it is defect do we still need it? The original old driver had this behavior and we are maintaining parity with this change. Please confirm whether we have to add it in release notes?\n2 a.) We are able access the VM console which is kind of read/write behavior during the online copy clone was still in progress on array, so this confirms the array contract that I/O is possible during online copy. Old driver has also relied on this contract.\n2 b.) The array refuses to delete a snapshot that is the source of an active online copy. _cleanup_temp_snapshot_children() turns that refusal into VolumeIsBusy, so deleting the source volume fails cleanly and the clone is not corrupted.\n3) We will add comment around _can_do_online_clone which will clarify - This only changes the same-size online clone path. Larger clones still use the non-online copy path and wait for completion before resize. Image-cache and cinder:// clones may still benefit by freeing the volume worker earlier, but they do not hold the source delete lock\n4) We will get confirmation from platform side- For encrypted same-size clones, if that read/attach contract is not explicit enough to cover the cryptsetup attach path, we will exclude encrypted volumes from the online early-return path. But, we will address this as separate patch, as this is existing behavior and not newly introduced in new driver.\n5 a.) Will add a test case _perform_online_clone does not call _wait_for_task_completion.\n5 b.) Same test case can cover this as well - Unit test should verify online copy submission, VVSET add, and model update return.\n5 c.) Unit test should verify unequal-size path still waits.\n6) extend volume - we are sure that array rejects all the operation during online copy is in progress. So grow volume will not be applied during online clone.","commit_id":"803dca69e6928c5a1894f2dad7093ddea7e77efb"},{"author":{"_account_id":38274,"name":"Jyotsna Lothe","display_name":"Jyotsna Lothe","email":"jyotsna.lothe@hpe.com","username":"jlothe"},"change_message_id":"796a8f482148941e952a9bd45da64baf2f30e30d","unresolved":false,"context_lines":[{"line_number":1478,"context_line":"            \u0027id\u003d%(id)s, task_id\u003d%(task_id)s.\u0027,"},{"line_number":1479,"context_line":"            {\u0027id\u0027: volume[\u0027id\u0027], \u0027task_id\u0027: task_id})"},{"line_number":1480,"context_line":""},{"line_number":1481,"context_line":"        task_status \u003d self._wait_for_task_completion(task_id)"},{"line_number":1482,"context_line":"        if task_status[\u0027status\u0027] !\u003d constants.TASK_DONE:"},{"line_number":1483,"context_line":"            dbg \u003d {\u0027status\u0027: task_status, \u0027id\u0027: volume[\u0027id\u0027]}"},{"line_number":1484,"context_line":"            msg \u003d _(\u0027Copy volume task failed: create_cloned_volume: \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"b288e282_5bd805cc","side":"PARENT","line":1481,"in_reply_to":"c6b74d50_5edc37c2","updated":"2026-10-07 03:56:16.000000000","message":"Addressed the feedback.","commit_id":"803dca69e6928c5a1894f2dad7093ddea7e77efb"}]}
