)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"930298392719e7d85da30839f6b7d0a87cc48b2f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7a795782_80d0cb72","updated":"2023-08-29 07:12:42.000000000","message":"nova says volume is attached to VM, but its not listed as yet, tried restarted vm as well.","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"dc0036bc8828ad484148cb25c0ee4554fddba15a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"27946284_0d2a4477","updated":"2023-08-28 12:35:34.000000000","message":"tested with below steps:\n\n1- stopped  devstack@c-vol\n\n2- detach vol from server\n\n3- login and verify instance, if volume is listed using lsblk\n   server gets detached from instance\n\n4- openstack volume list\n    volume stayed in detaching state for more then 5-10 mins\n    then as expected went back (i.e. roll back) to in-use\n    https://paste.opendev.org/show/bbGUHTnxADFiJlLF3UkU/\n    \n5- login and verify instance, if volume is listed using lsblk\n   vol never not get listed again (waited more then 30 mins)\n\nextra lsblk logs\nhttps://paste.opendev.org/show/bnKaa5C0KdmVr6qHeVEY/","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3ea340ff4f970a512dcefafd181167cbb5ac0635","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f60b3160_c80fbcf5","in_reply_to":"27946284_0d2a4477","updated":"2024-09-04 18:36:57.000000000","message":"This is expected in the scenario you did. There are a few steps that happen when detaching a volume from an instance:\n\n1. The volume is detached from the guest (in Nova)\n2. The volume is detached from the compute host (by calling Cinder API)\n3. The volume status is set to \"available\" (by calling Cinder API)\n\nIn your test, you stopped the Cinder service. So Nova succeeds at step 1, detaching the volume from the guest (which you see inside the guest) but it times out asking Cinder to detach the volume from the compute host. By default, python-cinderclient does not set a timeout for the call to Cinder:\nhttps://github.com/openstack/python-cinderclient/blob/c4ecade6b16c25541d8e241c83f6c214ec5b437f/cinderclient/client.py#L403\nso the client will wait for a response for an undefined amount of time. It might be worth checking your nova-compute log to confirm whether the cinderclient took 5-10 minutes to time out before Nova could move on to roll back the volume status to \"in-use\" and that there was not some other reason for the delay in the status rollback.\n\nGoing back to the detach steps, if Nova succeeds in detaching the volume from the guest, it will not reattach it if the Cinder API call fails. This is currently the intended way that it works, that a detach can have made partial progress and the user needs to retry the detach later when Cinder is healthy again, to complete the total detach flow.","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6f7521cf3e4b0a4b267ada27afa165c743ead4e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"68182de8_6e626b83","in_reply_to":"7a795782_80d0cb72","updated":"2026-08-24 22:02:42.000000000","message":"Done","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6f7521cf3e4b0a4b267ada27afa165c743ead4e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"caa3f668_67634ae9","in_reply_to":"f60b3160_c80fbcf5","updated":"2026-08-24 22:02:42.000000000","message":"Done","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e668a511fe342347ee47b97d32a6e628d876c2dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9a621d68_95478c60","updated":"2025-03-26 12:39:38.000000000","message":"i dont know if we want ot add a fucntional repoducer and or release note for this bug over all this makes sense i think\n\nrebased to see if this still applies cleanly and passes.","commit_id":"3363e917aef4ed1a641016191b6b16e1ac0f77ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"662e83b19eacd316e064fed2246eb0c664a9334e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c3a881ab_68891c85","updated":"2025-04-03 17:49:07.000000000","message":"+1 i need to review this properly but over all it looks ok\nim a littel to tired to dig into this today but ill try and loop back to it after the ptg.","commit_id":"f4db396c49c2257ce75ce06833e0ddbd8a3c8372"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"945cfdc68ba6d296b9bd5d01cd1a912b0f2bd1b2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cd4c397f_255c89f6","in_reply_to":"c3a881ab_68891c85","updated":"2026-08-13 08:37:08.000000000","message":"Please, can you look at it once again? It looks like very beneficial patch. We sometimes experience \u0027ing\u0027 states, and this would help a lot IMO.","commit_id":"f4db396c49c2257ce75ce06833e0ddbd8a3c8372"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6f7521cf3e4b0a4b267ada27afa165c743ead4e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"12ba15db_ed7ea9eb","in_reply_to":"cd4c397f_255c89f6","updated":"2026-08-24 22:02:42.000000000","message":"Done","commit_id":"f4db396c49c2257ce75ce06833e0ddbd8a3c8372"},{"author":{"_account_id":20865,"name":"Gökhan","email":"gokhan.isik@tubitak.gov.tr","username":"gokhan.isik"},"change_message_id":"921e68b9c593a5417c79d7fedc0630c9de2aa34e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d82c73f6_bb58a75a","updated":"2026-01-27 08:03:56.000000000","message":"recheck","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c64e250c8e73a4e9928a566a393a9b7673d2d4d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"66edf456_fa23b6e3","updated":"2025-12-05 01:44:33.000000000","message":"recheck nova-next guest kernel panic","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"eb362b8a7a5564e5d96ffae167a87a5caa7e8a2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8bbc078e_df06730f","updated":"2026-08-13 23:10:24.000000000","message":"recheck bug 2163448","commit_id":"42925481eb9240d7cd839f33d016992ee635c86e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c40d6bd22dcff5ac16a2b600f18356328bd153fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"57a9f048_97ec515d","updated":"2026-08-26 14:48:41.000000000","message":"recheck unrelated manila func test failure\n\nnova.exception.ShareAccessGrantError: Share access could not be granted to share id 8db0037b-e98f-4bde-ae71-f96a077c19a4.\nReason: Connection timed out.","commit_id":"42925481eb9240d7cd839f33d016992ee635c86e"}],"nova/tests/unit/virt/test_block_device.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8028befefca5539d788daca445a6f2c8e5c036df","unresolved":true,"context_lines":[{"line_number":327,"context_line":"        volume API to detach the volume, we need to roll back the volume"},{"line_number":328,"context_line":"        status to remain \u0027in-use\u0027 after the detach fails."},{"line_number":329,"context_line":"        \"\"\""},{"line_number":330,"context_line":"        exc \u003d test.TestingException(\u0027oops!\u0027)"},{"line_number":331,"context_line":"        self.volume_api.terminate_connection.side_effect \u003d exc"},{"line_number":332,"context_line":"        self.volume_api.attachment_delete.side_effect \u003d exc"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f3a655ca_40bdfa81","line":330,"range":{"start_line":330,"start_character":14,"end_line":330,"end_character":44},"updated":"2026-08-13 11:51:59.000000000","message":"again it would be better to avodi using Test expction and instead use a 500 or 503\n\nthis iwll work but only where the code catches a board Exception rather then more specific excpt blocks","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"be3894bac5da794da73e78644e840a846c954fe9","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        volume API to detach the volume, we need to roll back the volume"},{"line_number":328,"context_line":"        status to remain \u0027in-use\u0027 after the detach fails."},{"line_number":329,"context_line":"        \"\"\""},{"line_number":330,"context_line":"        exc \u003d test.TestingException(\u0027oops!\u0027)"},{"line_number":331,"context_line":"        self.volume_api.terminate_connection.side_effect \u003d exc"},{"line_number":332,"context_line":"        self.volume_api.attachment_delete.side_effect \u003d exc"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"6e1959ca_e8da32f9","line":330,"range":{"start_line":330,"start_character":14,"end_line":330,"end_character":44},"in_reply_to":"f3a655ca_40bdfa81","updated":"2026-08-13 18:19:11.000000000","message":"Done","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"}],"nova/virt/block_device.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77406fcb06da638f67da637d53c4ae9ba826e439","unresolved":true,"context_lines":[{"line_number":516,"context_line":"                volume_api.detach(context.elevated(), volume_id, instance.uuid,"},{"line_number":517,"context_line":"                                  attachment_id)"},{"line_number":518,"context_line":"            except Exception:"},{"line_number":519,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":520,"context_line":"                    LOG.exception("},{"line_number":521,"context_line":"                        f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":522,"context_line":"                        f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"}],"source_content_type":"text/x-python","patch_set":2,"id":"e5c25a30_a274b74b","line":519,"range":{"start_line":519,"start_character":0,"end_line":519,"end_character":1},"updated":"2023-10-31 21:10:40.000000000","message":"we dont need to do this any more we can just call raise\nafter\nvolume_api.roll_detaching(context, volume_id)","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e668a511fe342347ee47b97d32a6e628d876c2dd","unresolved":false,"context_lines":[{"line_number":516,"context_line":"                volume_api.detach(context.elevated(), volume_id, instance.uuid,"},{"line_number":517,"context_line":"                                  attachment_id)"},{"line_number":518,"context_line":"            except Exception:"},{"line_number":519,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":520,"context_line":"                    LOG.exception("},{"line_number":521,"context_line":"                        f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":522,"context_line":"                        f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"}],"source_content_type":"text/x-python","patch_set":2,"id":"6b9d20c5_fe527f05","line":519,"range":{"start_line":519,"start_character":0,"end_line":519,"end_character":1},"in_reply_to":"e5c25a30_a274b74b","updated":"2025-03-26 12:39:38.000000000","message":"Done","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77406fcb06da638f67da637d53c4ae9ba826e439","unresolved":true,"context_lines":[{"line_number":521,"context_line":"                        f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":522,"context_line":"                        f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"},{"line_number":523,"context_line":"                    )"},{"line_number":524,"context_line":"                    volume_api.roll_detaching(context, volume_id)"},{"line_number":525,"context_line":"        else:"},{"line_number":526,"context_line":"            try:"},{"line_number":527,"context_line":"                volume_api.attachment_delete(context, self[\u0027attachment_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ca1db8e4_4992aa4d","line":524,"updated":"2023-10-31 21:10:40.000000000","message":"this will likely also fail correct.\nif we got a 500 or per haps a 503 rather then a 500 \n\nit does not hurt i guess too try an rool back but if we got a 500 we are in an undefiend state so we cant assume any future operators on teh volume will actully work.","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e668a511fe342347ee47b97d32a6e628d876c2dd","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                        f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":522,"context_line":"                        f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"},{"line_number":523,"context_line":"                    )"},{"line_number":524,"context_line":"                    volume_api.roll_detaching(context, volume_id)"},{"line_number":525,"context_line":"        else:"},{"line_number":526,"context_line":"            try:"},{"line_number":527,"context_line":"                volume_api.attachment_delete(context, self[\u0027attachment_id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff6a54d3_c41faad2","line":524,"in_reply_to":"ca1db8e4_4992aa4d","updated":"2025-03-26 12:39:38.000000000","message":"Acknowledged","commit_id":"26ddbb8fac8940fa7b866067c9e3cd87bd5376d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"be3894bac5da794da73e78644e840a846c954fe9","unresolved":true,"context_lines":[{"line_number":429,"context_line":"                              \u0027%(volume_id)s from %(mp)s\u0027,"},{"line_number":430,"context_line":"                              {\u0027volume_id\u0027: volume_id, \u0027mp\u0027: mp},"},{"line_number":431,"context_line":"                              instance\u003dinstance)"},{"line_number":432,"context_line":"                volume_api.roll_detaching(context, volume_id)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    @staticmethod"},{"line_number":435,"context_line":"    def _get_volume(context, volume_api, volume_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"56ce18ce_f7969ad3","line":432,"updated":"2026-08-13 18:19:11.000000000","message":"Noting that driver_detach() also calls roll_detaching for all uncaught exceptions.","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ff0af10cb709978df085675d44861c1c8b838b93","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                              \u0027%(volume_id)s from %(mp)s\u0027,"},{"line_number":430,"context_line":"                              {\u0027volume_id\u0027: volume_id, \u0027mp\u0027: mp},"},{"line_number":431,"context_line":"                              instance\u003dinstance)"},{"line_number":432,"context_line":"                volume_api.roll_detaching(context, volume_id)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    @staticmethod"},{"line_number":435,"context_line":"    def _get_volume(context, volume_api, volume_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"141890aa_5eb3fb26","line":432,"in_reply_to":"56ce18ce_f7969ad3","updated":"2026-08-13 19:07:50.000000000","message":"Acknowledged","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8028befefca5539d788daca445a6f2c8e5c036df","unresolved":true,"context_lines":[{"line_number":550,"context_line":"                volume_api.terminate_connection(context, volume_id, connector)"},{"line_number":551,"context_line":"                volume_api.detach(context.elevated(), volume_id, instance.uuid,"},{"line_number":552,"context_line":"                                  attachment_id)"},{"line_number":553,"context_line":"            except Exception:"},{"line_number":554,"context_line":"                # NOTE(melwitt): If we fail to detach the volume for any"},{"line_number":555,"context_line":"                # reason, attempt to roll back the volume status to \"in-use\" so"},{"line_number":556,"context_line":"                # that the user may retry the detach later, if they want. If"}],"source_content_type":"text/x-python","patch_set":6,"id":"ed9dc519_bc4d3869","line":553,"range":{"start_line":553,"start_character":19,"end_line":553,"end_character":28},"updated":"2026-08-13 11:51:59.000000000","message":"we are ment to avoid Excpetion in general\n\nthis and the one below shoudl really be a clinet expction","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ff0af10cb709978df085675d44861c1c8b838b93","unresolved":false,"context_lines":[{"line_number":550,"context_line":"                volume_api.terminate_connection(context, volume_id, connector)"},{"line_number":551,"context_line":"                volume_api.detach(context.elevated(), volume_id, instance.uuid,"},{"line_number":552,"context_line":"                                  attachment_id)"},{"line_number":553,"context_line":"            except Exception:"},{"line_number":554,"context_line":"                # NOTE(melwitt): If we fail to detach the volume for any"},{"line_number":555,"context_line":"                # reason, attempt to roll back the volume status to \"in-use\" so"},{"line_number":556,"context_line":"                # that the user may retry the detach later, if they want. If"}],"source_content_type":"text/x-python","patch_set":6,"id":"8d1f204e_67ef4117","line":553,"range":{"start_line":553,"start_character":19,"end_line":553,"end_character":28},"in_reply_to":"6c258b1e_e63935b8","updated":"2026-08-13 19:07:50.000000000","message":"if that is sematnicly safe to do in cidner sure.\n\nbased on your comment belwo it should be but as a general rule i would say we should be careful with calling such apis for any error.\n\nsometimes with say a 503 the request may have \"timed out\" but completed sucsessfully and it not alvys valid to trivally role back\n\nbut ok your right its consited with the behvior above.","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"be3894bac5da794da73e78644e840a846c954fe9","unresolved":true,"context_lines":[{"line_number":550,"context_line":"                volume_api.terminate_connection(context, volume_id, connector)"},{"line_number":551,"context_line":"                volume_api.detach(context.elevated(), volume_id, instance.uuid,"},{"line_number":552,"context_line":"                                  attachment_id)"},{"line_number":553,"context_line":"            except Exception:"},{"line_number":554,"context_line":"                # NOTE(melwitt): If we fail to detach the volume for any"},{"line_number":555,"context_line":"                # reason, attempt to roll back the volume status to \"in-use\" so"},{"line_number":556,"context_line":"                # that the user may retry the detach later, if they want. If"}],"source_content_type":"text/x-python","patch_set":6,"id":"6c258b1e_e63935b8","line":553,"range":{"start_line":553,"start_character":19,"end_line":553,"end_character":28},"in_reply_to":"ed9dc519_bc4d3869","updated":"2026-08-13 18:19:11.000000000","message":"I kind of disagree because I think if these fail for any reason including say, connection errors, we should still attempt to call roll_detaching. Getting stuck in \"detaching\" state has a large impact and IMHO it\u0027s worth it to try to avoid it even if the failure is not a successful HTTP response from Cinder.","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8028befefca5539d788daca445a6f2c8e5c036df","unresolved":true,"context_lines":[{"line_number":561,"context_line":"                    f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":562,"context_line":"                    f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"},{"line_number":563,"context_line":"                )"},{"line_number":564,"context_line":"                volume_api.roll_detaching(context, volume_id)"},{"line_number":565,"context_line":"                # Re-raise to compute."},{"line_number":566,"context_line":"                raise"},{"line_number":567,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"a32826ea_d0916db3","line":564,"range":{"start_line":564,"start_character":15,"end_line":564,"end_character":61},"updated":"2026-08-13 11:51:59.000000000","message":"is roll_detach correct if teminate connection raised and we never called detach?","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"be3894bac5da794da73e78644e840a846c954fe9","unresolved":true,"context_lines":[{"line_number":561,"context_line":"                    f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":562,"context_line":"                    f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"},{"line_number":563,"context_line":"                )"},{"line_number":564,"context_line":"                volume_api.roll_detaching(context, volume_id)"},{"line_number":565,"context_line":"                # Re-raise to compute."},{"line_number":566,"context_line":"                raise"},{"line_number":567,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"f9e9e6a3_bb0fe70b","line":564,"range":{"start_line":564,"start_character":15,"end_line":564,"end_character":61},"in_reply_to":"a32826ea_d0916db3","updated":"2026-08-13 18:19:11.000000000","message":"Yes because roll_detaching is basically a \"flag\" API in Cinder [1] where all it does is update the status.\n\nThe flag gets flipped to \"detaching\" in nova-api [2] when the detach is first requested, before the RPC call to nova-compute.\n\nSo when we get to nova-compute, if any part of the detach fails, we should set the volume back to \"in-use\" so that the user can try to detach again and run through all the cleanup to completion.\n\n[1] https://docs.openstack.org/api-ref/block-storage/v3/index.html#roll-back-volume-status-to-in-use\n[2] https://github.com/openstack/nova/blob/48d4b3f7032364e2030035a33596c0f407cb0279/nova/compute/api.py#L5290","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ff0af10cb709978df085675d44861c1c8b838b93","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                    f\u0027Volume detach failed for volume {volume_id} \u0027"},{"line_number":562,"context_line":"                    f\u0027and attachment {attachment_id}\u0027, instance\u003dinstance"},{"line_number":563,"context_line":"                )"},{"line_number":564,"context_line":"                volume_api.roll_detaching(context, volume_id)"},{"line_number":565,"context_line":"                # Re-raise to compute."},{"line_number":566,"context_line":"                raise"},{"line_number":567,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3b026197_f450a17d","line":564,"range":{"start_line":564,"start_character":15,"end_line":564,"end_character":61},"in_reply_to":"f9e9e6a3_bb0fe70b","updated":"2026-08-13 19:07:50.000000000","message":"Acknowledged","commit_id":"2dcd18c3b84b42227f501aa3d40706c1d0ec77fc"}]}
