)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"a53da9f45b1a0f22908a620f65e9244fbc59d87c","unresolved":false,"context_lines":[{"line_number":1992,"context_line":"                      \u0027rollback persistent domain xml.\u0027)"},{"line_number":1993,"context_line":"            conf \u003d guest.get_disk(disk_dev)"},{"line_number":1994,"context_line":"            if conf is not None:"},{"line_number":1995,"context_line":"                guest.attach_device(conf, persistent\u003dTrue, live\u003dFalse)"},{"line_number":1996,"context_line":"            raise"},{"line_number":1997,"context_line":"        except libvirt.libvirtError as ex:"},{"line_number":1998,"context_line":"            # NOTE(vish): This is called to cleanup volumes after live"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f2f40dd1","line":1995,"range":{"start_line":1995,"start_character":16,"end_line":1995,"end_character":70},"updated":"2019-10-31 13:38:25.000000000","message":"We\u0027re assuming that it\u0027s the transient domain detach which failed here, but it\u0027s at least theoretically possible that this isn\u0027t the case. We\u0027re also encoding internal details of detach_device_with_retry far from the implementation, which is both hard to maintain and doesn\u0027t help the other caller of the same function, detach_interface, which presumably has the same problem.","commit_id":"e32842c8ca7ffcd69574f38c1a54bde95427930f"},{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"7620edba11b1adb6cb755e6614edc7a13bba03db","unresolved":false,"context_lines":[{"line_number":1992,"context_line":"                      \u0027rollback persistent domain xml.\u0027)"},{"line_number":1993,"context_line":"            conf \u003d guest.get_disk(disk_dev)"},{"line_number":1994,"context_line":"            if conf is not None:"},{"line_number":1995,"context_line":"                guest.attach_device(conf, persistent\u003dTrue, live\u003dFalse)"},{"line_number":1996,"context_line":"            raise"},{"line_number":1997,"context_line":"        except libvirt.libvirtError as ex:"},{"line_number":1998,"context_line":"            # NOTE(vish): This is called to cleanup volumes after live"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_38cb5c1e","line":1995,"range":{"start_line":1995,"start_character":16,"end_line":1995,"end_character":70},"in_reply_to":"3fa7e38b_08c2d5e9","updated":"2019-11-01 10:16:06.000000000","message":"Maybe I should focus on rolling back volume detach here? Change the commit message, make it clearer?","commit_id":"e32842c8ca7ffcd69574f38c1a54bde95427930f"},{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"fecba82390b23a36840eca1854fb01eae4f24e93","unresolved":false,"context_lines":[{"line_number":1992,"context_line":"                      \u0027rollback persistent domain xml.\u0027)"},{"line_number":1993,"context_line":"            conf \u003d guest.get_disk(disk_dev)"},{"line_number":1994,"context_line":"            if conf is not None:"},{"line_number":1995,"context_line":"                guest.attach_device(conf, persistent\u003dTrue, live\u003dFalse)"},{"line_number":1996,"context_line":"            raise"},{"line_number":1997,"context_line":"        except libvirt.libvirtError as ex:"},{"line_number":1998,"context_line":"            # NOTE(vish): This is called to cleanup volumes after live"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_08c2d5e9","line":1995,"range":{"start_line":1995,"start_character":16,"end_line":1995,"end_character":70},"in_reply_to":"3fa7e38b_f2f40dd1","updated":"2019-11-01 03:21:06.000000000","message":"Thanks for the reviews. I\u0027ve tried to catch DeviceDetachFailed exception inside detach_device_with_retry, but the method `return _do_wait_and_retry_detach` and decorator @loopingcall.RetryDecorator makes it complicated to catch exception there. So I pull back and handle the exception here.\n\nWhat you mentioned about detach_interface, yes, it might have the same problem, I checked the code and in Id20a53812dbb1f888d8debc964418e79dd3e0a30, Matt had done something.","commit_id":"e32842c8ca7ffcd69574f38c1a54bde95427930f"}]}
