)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee2c6926d04a2d8c52e5336699686e38b7aaab13","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Re-using the code of os brick cinder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Using the same brick library of cinder for"},{"line_number":10,"context_line":"removing volumes in nova."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I092afdd0409ab27187cf74cd1514e9e0c550d52c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5f7c97a3_a9b4eaf2","line":9,"updated":"2018-05-15 12:59:41.000000000","message":"This doesn\u0027t really explain anything about the bug or why this fixes the bug, it just repeats what is in the commit message title, and unless this is fixing something, I don\u0027t think we need to make this change.","commit_id":"9877ffc9b089d2fc051e7701b2549aaa03ea0d2d"}],"nova/tests/unit/virt/libvirt/storage/test_lvm.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"5fe62f7b8f6db92df79366aa9c0b100679a0fb51","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        self.assertEqual(mock_lvremove.return_value, lvm.remove_volumes("},{"line_number":125,"context_line":"            [\u0027vol1\u0027, \u0027vol2\u0027, \u0027vol3\u0027]))"},{"line_number":126,"context_line":"        self.assertEqual(3, mock_lvremove.call_count)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_843530fa","line":127,"updated":"2018-05-03 07:22:06.000000000","message":"should not add this line","commit_id":"0d75dc0985b53627c8d546dd6d8cfe91fd9a6c27"}],"nova/virt/libvirt/storage/lvm.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"35d7f2871f9f265e6d82435bae4deddeb1d47a54","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    for path in paths:"},{"line_number":186,"context_line":"        clear_volume(path)"},{"line_number":187,"context_line":"        brick_lvm.LVM.delete(path)"},{"line_number":188,"context_line":"    return"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_24b1bce2","line":188,"range":{"start_line":188,"start_character":4,"end_line":188,"end_character":10},"updated":"2018-05-03 06:47:48.000000000","message":"return is not needed.","commit_id":"0d75dc0985b53627c8d546dd6d8cfe91fd9a6c27"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6570038c8d3e055345a52e6410311d35e3eb917f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    for path in paths:"},{"line_number":186,"context_line":"        clear_volume(path)"},{"line_number":187,"context_line":"        brick_lvm.LVM.delete(path)"},{"line_number":188,"context_line":"    return"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_16bb68e2","line":188,"range":{"start_line":188,"start_character":4,"end_line":188,"end_character":10},"updated":"2018-05-07 08:42:10.000000000","message":"as Sean mentioned in last patchset, this is not needed.","commit_id":"46bbb27aab14afb78d498293280e1f8f4cee6b86"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"eee33d56de0746749c6002854a997b9f88273f9e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from nova import exception"},{"line_number":30,"context_line":"from nova.i18n import _"},{"line_number":31,"context_line":"import nova.privsep.fs"},{"line_number":32,"context_line":"from os_brick.local_dev import lvm as brick_lvm"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_939b0571","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":47},"updated":"2018-05-07 12:50:21.000000000","message":"It should be in line 24 (just before \"from oslo_concurrency import processutils\").\n\nhttps://docs.openstack.org/hacking/latest/user/hacking.html#imports","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"a3ceed26cf270c7d841d78ab2b7e11c1b7040078","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from nova import exception"},{"line_number":30,"context_line":"from nova.i18n import _"},{"line_number":31,"context_line":"import nova.privsep.fs"},{"line_number":32,"context_line":"from os_brick.local_dev import lvm as brick_lvm"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_3c3c30c7","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":47},"in_reply_to":"5f7c97a3_2972b012","updated":"2018-05-08 05:11:10.000000000","message":"Yes. It should be as follows:\n\nimport os\n\nfrom os_brick.local_dev import lvm as brick_lvm\nfrom oslo_concurrency import processutils\nfrom oslo_log import log as logging\nfrom oslo_utils import units\n\nimport nova.conf\nfrom nova import exception\nfrom nova.i18n import _\nimport nova.privsep.fs","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"99e9dad4e52566d2abb28b559a52f88a62533f4f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from nova import exception"},{"line_number":30,"context_line":"from nova.i18n import _"},{"line_number":31,"context_line":"import nova.privsep.fs"},{"line_number":32,"context_line":"from os_brick.local_dev import lvm as brick_lvm"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_109fd55f","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":47},"in_reply_to":"5f7c97a3_2972b012","updated":"2018-05-08 09:23:28.000000000","message":"thanks. Done","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"5f2ffe339f73fcef582a42b34d1a82d2068209d6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from nova import exception"},{"line_number":30,"context_line":"from nova.i18n import _"},{"line_number":31,"context_line":"import nova.privsep.fs"},{"line_number":32,"context_line":"from os_brick.local_dev import lvm as brick_lvm"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_2972b012","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":47},"in_reply_to":"5f7c97a3_939b0571","updated":"2018-05-08 04:34:08.000000000","message":"when seeing the import ordering section of -\nhttps://docs.openstack.org/charm-guide/latest/coding-\nguidelines.html\n\nThird party or local imports comes after python system packages in alphabetical order.","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"eee33d56de0746749c6002854a997b9f88273f9e","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    for path in paths:"},{"line_number":186,"context_line":"        clear_volume(path)"},{"line_number":187,"context_line":"        brick_lvm.LVM.delete(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_93ed45f1","line":187,"range":{"start_line":187,"start_character":7,"end_line":187,"end_character":34},"updated":"2018-05-07 12:50:21.000000000","message":"If it exceeds the retry limit, ProcessExecutionError will be raised.\nThe except clause and raising VolumesNotRemoved exception are not necessary?","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"99e9dad4e52566d2abb28b559a52f88a62533f4f","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    for path in paths:"},{"line_number":186,"context_line":"        clear_volume(path)"},{"line_number":187,"context_line":"        brick_lvm.LVM.delete(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_f08d7931","line":187,"range":{"start_line":187,"start_character":7,"end_line":187,"end_character":34},"in_reply_to":"5f7c97a3_3c41903a","updated":"2018-05-08 09:23:28.000000000","message":"Done. Checked for the exceptions here too.","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"5f2ffe339f73fcef582a42b34d1a82d2068209d6","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    for path in paths:"},{"line_number":186,"context_line":"        clear_volume(path)"},{"line_number":187,"context_line":"        brick_lvm.LVM.delete(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_c9069c87","line":187,"range":{"start_line":187,"start_character":7,"end_line":187,"end_character":34},"in_reply_to":"5f7c97a3_93ed45f1","updated":"2018-05-08 04:34:08.000000000","message":"Thanks for your comment. The exception will be handled in the delete func L722.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/brick/local_dev/lvm.py","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"a3ceed26cf270c7d841d78ab2b7e11c1b7040078","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    for path in paths:"},{"line_number":186,"context_line":"        clear_volume(path)"},{"line_number":187,"context_line":"        brick_lvm.LVM.delete(path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_3c41903a","line":187,"range":{"start_line":187,"start_character":7,"end_line":187,"end_character":34},"in_reply_to":"5f7c97a3_c9069c87","updated":"2018-05-08 05:11:10.000000000","message":"Yes.\nBut retry is executed in the except clause. Then an exception can be raised again.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/brick/local_dev/lvm.py#L736-L741\n\nIf it exceeds the retry limit, ProcessExecutionError will be raised.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/brick/local_dev/lvm.py#L698","commit_id":"89bb9e2795c582ba84d87281143bfd0f82f30d89"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"53039df0981e12d1ce0461befc73469c1031f7ba","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    errors \u003d []"},{"line_number":187,"context_line":"    for path in paths:"},{"line_number":188,"context_line":"        clear_volume(path)"},{"line_number":189,"context_line":"    try:"},{"line_number":190,"context_line":"        brick_lvm.LVM.delete(path)"},{"line_number":191,"context_line":"    except processutils.ProcessExecutionError as exp:"},{"line_number":192,"context_line":"        errors.append(six.text_type(exp))"},{"line_number":193,"context_line":"    if errors:"},{"line_number":194,"context_line":"        raise exception.VolumesNotRemoved(reason\u003d(\u0027, \u0027).join(errors))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_4be809e1","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":41},"updated":"2018-05-10 06:23:48.000000000","message":"this should be under for loop. this is cause your unit testing failure.","commit_id":"1bdc6bdce6fe4005082abe0386a6a0e2553b4936"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"715ba471f8994fb7e292a88515be7447a298bec7","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    errors \u003d []"},{"line_number":187,"context_line":"    for path in paths:"},{"line_number":188,"context_line":"        clear_volume(path)"},{"line_number":189,"context_line":"    try:"},{"line_number":190,"context_line":"        brick_lvm.LVM.delete(path)"},{"line_number":191,"context_line":"    except processutils.ProcessExecutionError as exp:"},{"line_number":192,"context_line":"        errors.append(six.text_type(exp))"},{"line_number":193,"context_line":"    if errors:"},{"line_number":194,"context_line":"        raise exception.VolumesNotRemoved(reason\u003d(\u0027, \u0027).join(errors))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_0bf1b195","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":41},"in_reply_to":"5f7c97a3_4be809e1","updated":"2018-05-10 06:42:17.000000000","message":"THanks for this comment. :) Done","commit_id":"1bdc6bdce6fe4005082abe0386a6a0e2553b4936"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e47f4034521922abb2a488574bd725d0a0c69382","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    for path in paths:"},{"line_number":187,"context_line":"        clear_volume(path)"},{"line_number":188,"context_line":"        try:"},{"line_number":189,"context_line":"            nova.privsep.fs.lvremove(path)"},{"line_number":190,"context_line":"        except processutils.ProcessExecutionError as exp:"},{"line_number":191,"context_line":"            errors.append(six.text_type(exp))"},{"line_number":192,"context_line":"    if errors:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_f74fea31","side":"PARENT","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":42},"updated":"2018-05-17 14:14:34.000000000","message":"There are no callers for this function any more. Can you remove it, please","commit_id":"324899c621ee02d877122ba3412712ebb92831f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8774500aa6f29c649c6699b4d60088c85b0427f3","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    for path in paths:"},{"line_number":188,"context_line":"        clear_volume(path)"},{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            brick_lvm.LVM.delete(path)"},{"line_number":191,"context_line":"        except processutils.ProcessExecutionError as exp:"},{"line_number":192,"context_line":"            errors.append(six.text_type(exp))"},{"line_number":193,"context_line":"    if errors:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_73ff49ab","line":190,"updated":"2018-06-18 13:18:01.000000000","message":"Apparently this isn\u0027t tested properly because it results in a TypeError:\n\nhttp://logs.openstack.org/10/515210/39/check/barbican-simple-crypto-devstack-tempest/7b7f049/logs/screen-n-cpu.txt.gz?level\u003dTRACE#_Jun_15_18_35_04_327368\n\nJun 15 18:35:04.310640 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server [None req-830f8142-1f52-4eea-a72c-0a1da266fde6 tempest-ImageSigningSnapshotTest-1736125101 tempest-ImageSigningSnapshotTest-1736125101] Exception during message handling: TypeError: unbound method delete() must be called with LVM instance as first argument (got str instance instead)\nJun 15 18:35:04.310859 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server Traceback (most recent call last):\nJun 15 18:35:04.311069 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py\", line 163, in _process_incoming\nJun 15 18:35:04.311238 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     res \u003d self.dispatcher.dispatch(message)\nJun 15 18:35:04.311429 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py\", line 265, in dispatch\nJun 15 18:35:04.311591 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     return self._do_dispatch(endpoint, method, ctxt, args)\nJun 15 18:35:04.311760 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py\", line 194, in _do_dispatch\nJun 15 18:35:04.311921 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     result \u003d func(ctxt, **new_args)\nJun 15 18:35:04.312088 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/exception_wrapper.py\", line 76, in wrapped\nJun 15 18:35:04.312248 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     function_name, call_dict, binary)\nJun 15 18:35:04.312408 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 220, in __exit__\nJun 15 18:35:04.312656 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self.force_reraise()\nJun 15 18:35:04.312913 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 196, in force_reraise\nJun 15 18:35:04.313117 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     six.reraise(self.type_, self.value, self.tb)\nJun 15 18:35:04.313280 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/exception_wrapper.py\", line 67, in wrapped\nJun 15 18:35:04.313448 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     return f(self, context, *args, **kw)\nJun 15 18:35:04.313622 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 185, in decorated_function\nJun 15 18:35:04.313780 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     \"Error: %s\", e, instance\u003dinstance)\nJun 15 18:35:04.313954 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 220, in __exit__\nJun 15 18:35:04.314115 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self.force_reraise()\nJun 15 18:35:04.314281 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 196, in force_reraise\nJun 15 18:35:04.314450 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     six.reraise(self.type_, self.value, self.tb)\nJun 15 18:35:04.314623 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 155, in decorated_function\nJun 15 18:35:04.314778 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     return function(self, context, *args, **kwargs)\nJun 15 18:35:04.314941 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/utils.py\", line 1077, in decorated_function\nJun 15 18:35:04.315094 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     return function(self, context, *args, **kwargs)\nJun 15 18:35:04.315244 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 213, in decorated_function\nJun 15 18:35:04.315396 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     kwargs[\u0027instance\u0027], e, sys.exc_info())\nJun 15 18:35:04.315556 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 220, in __exit__\nJun 15 18:35:04.315707 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self.force_reraise()\nJun 15 18:35:04.315857 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 196, in force_reraise\nJun 15 18:35:04.316009 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     six.reraise(self.type_, self.value, self.tb)\nJun 15 18:35:04.316159 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 201, in decorated_function\nJun 15 18:35:04.316311 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     return function(self, context, *args, **kwargs)\nJun 15 18:35:04.317554 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 2538, in terminate_instance\nJun 15 18:35:04.317730 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     do_terminate_instance(instance, bdms)\nJun 15 18:35:04.317929 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py\", line 274, in inner\nJun 15 18:35:04.318108 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     return f(*args, **kwargs)\nJun 15 18:35:04.318271 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 2536, in do_terminate_instance\nJun 15 18:35:04.318432 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self._set_instance_obj_error_state(context, instance)\nJun 15 18:35:04.318591 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 220, in __exit__\nJun 15 18:35:04.318806 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self.force_reraise()\nJun 15 18:35:04.318979 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 196, in force_reraise\nJun 15 18:35:04.319141 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     six.reraise(self.type_, self.value, self.tb)\nJun 15 18:35:04.319310 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 2526, in do_terminate_instance\nJun 15 18:35:04.319477 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self._delete_instance(context, instance, bdms)\nJun 15 18:35:04.319636 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/hooks.py\", line 154, in inner\nJun 15 18:35:04.319795 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     rv \u003d f(*args, **kwargs)\nJun 15 18:35:04.319960 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 2469, in _delete_instance\nJun 15 18:35:04.320120 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self._shutdown_instance(context, instance, bdms)\nJun 15 18:35:04.320287 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 2361, in _shutdown_instance\nJun 15 18:35:04.320488 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     requested_networks)\nJun 15 18:35:04.321706 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 220, in __exit__\nJun 15 18:35:04.321949 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self.force_reraise()\nJun 15 18:35:04.322197 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py\", line 196, in force_reraise\nJun 15 18:35:04.322450 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     six.reraise(self.type_, self.value, self.tb)\nJun 15 18:35:04.322724 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/compute/manager.py\", line 2348, in _shutdown_instance\nJun 15 18:35:04.322992 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     block_device_info)\nJun 15 18:35:04.323246 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/virt/libvirt/driver.py\", line 935, in destroy\nJun 15 18:35:04.323507 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     destroy_disks)\nJun 15 18:35:04.323761 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/virt/libvirt/driver.py\", line 1025, in cleanup\nJun 15 18:35:04.325962 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     self._cleanup_lvm(instance, block_device_info)\nJun 15 18:35:04.326238 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/virt/libvirt/driver.py\", line 1110, in _cleanup_lvm\nJun 15 18:35:04.326523 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     lvm.remove_volumes(disks)\nJun 15 18:35:04.326815 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server   File \"/opt/stack/new/nova/nova/virt/libvirt/storage/lvm.py\", line 190, in remove_volumes\nJun 15 18:35:04.327095 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server     brick_lvm.LVM.delete(path)\nJun 15 18:35:04.327368 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server TypeError: unbound method delete() must be called with LVM instance as first argument (got str instance instead)\nJun 15 18:35:04.327643 ubuntu-xenial-inap-mtl01-0000165445 nova-compute[1555]: ERROR oslo_messaging.rpc.server","commit_id":"8b8c5da59efb087295b676d4261f84dfadf62503"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d8ba7f8eb54e6969198b5c63c1367096d3bb2edc","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        clear_volume(path)"},{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            brick_lvm.LVM.delete(path)"},{"line_number":191,"context_line":"        except processutils.ProcessExecutionError as exp:"},{"line_number":192,"context_line":"            errors.append(six.text_type(exp))"},{"line_number":193,"context_line":"    if errors:"},{"line_number":194,"context_line":"        raise exception.VolumesNotRemoved(reason\u003d(\u0027, \u0027).join(errors))"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_c8c26d34","line":194,"range":{"start_line":191,"start_character":0,"end_line":194,"end_character":69},"updated":"2018-06-01 19:15:27.000000000","message":"According to the library code, the above exception is handled on the library side as https://github.com/openstack/os-brick/blob/master/os_brick/local_dev/lvm.py#L720\n\n        try:\n            self._execute(\n                \u0027lvremove\u0027,\n                \u0027--config\u0027, LVM_CONFIG,\n                \u0027-f\u0027,\n                \u0027%s/%s\u0027 % (self.vg_name, name),\n                root_helper\u003dself._root_helper, run_as_root\u003dTrue)\n        except putils.ProcessExecutionError as err:\n            LOG.debug(\u0027Error reported running lvremove: CMD: %(command)s, \u0027\n                      \u0027RESPONSE: %(response)s\u0027,\n                      {\u0027command\u0027: err.cmd, \u0027response\u0027: err.stderr})\n\n            LOG.debug(\u0027Attempting udev settle and retry of lvremove...\u0027)\n            run_udevadm_settle()\n\nDo we still need to handle the same exception here also?\nI mean we can reduce the code on Nova side by using the common library code.","commit_id":"8b8c5da59efb087295b676d4261f84dfadf62503"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"9bffdba280b03b57f117093d3e3f958bfcf28ea4","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        clear_volume(path)"},{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            brick_lvm.LVM.delete(path)"},{"line_number":191,"context_line":"        except processutils.ProcessExecutionError as exp:"},{"line_number":192,"context_line":"            errors.append(six.text_type(exp))"},{"line_number":193,"context_line":"    if errors:"},{"line_number":194,"context_line":"        raise exception.VolumesNotRemoved(reason\u003d(\u0027, \u0027).join(errors))"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f7c97a3_c992784b","line":194,"range":{"start_line":191,"start_character":0,"end_line":194,"end_character":69},"in_reply_to":"5f7c97a3_c8c26d34","updated":"2018-06-13 22:54:48.000000000","message":"As mentioned in the non-inline comments, the os-brick code will handle ProcessExecutionError, do a udevadm settle, then retry the lvremove. If the retry fails, it will raise ProcessExecutionError, so it makes sense that we would still catch those and collect them for raising VolumesNotRemoved here.","commit_id":"8b8c5da59efb087295b676d4261f84dfadf62503"}]}
