)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3e9592f18a8015db229393e5f2802077aee9c338","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"39e036dd_c577d539","updated":"2023-01-16 12:23:39.000000000","message":"Thank you, only one log looks right. Please consider review commit message as-well","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"a5f3d3f148e634e960d612fea6dcb1fc6b6ba728","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"00b8d43d_85ae6ff7","updated":"2023-01-19 10:51:13.000000000","message":"recheck","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"43cc6777afc97cb566d0544602947a03ae19bad5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"633a225b_e04d62a1","updated":"2023-01-18 14:15:51.000000000","message":"recheck","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"421f5c3de170539776a66dd48f571c4ae7dd91b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"14688e9d_dd5611e2","updated":"2023-05-30 14:30:00.000000000","message":"Looks reasonable, thanks !","commit_id":"d97648f61c48ca482051e6e611dd4ee93b2ff89b"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"a0d086f8a7edc30c1d9f03f45bcb0a6a396aef6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6425b8dc_08a14b7b","updated":"2023-01-30 13:02:34.000000000","message":"recheck","commit_id":"d97648f61c48ca482051e6e611dd4ee93b2ff89b"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"9189d25d7650182198c1f2021c68bdbb0ac58788","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"dc07118b_3fec6b3b","updated":"2023-01-27 12:53:19.000000000","message":"recheck","commit_id":"d97648f61c48ca482051e6e611dd4ee93b2ff89b"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"5a21adbdb710fec7ea579c4d5ba8de6f8d438905","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"39103abf_a374c1da","updated":"2023-07-01 08:48:04.000000000","message":"As told in commit msg. this is an improvement on logs.\nfix for 1994983 reproducer patch is not added in this patch.","commit_id":"f7b4f0088ee94f356a9aa38a2ccaf118ab08abba"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"be2a2fd539e826ad7581d04cb81888ad8dec1265","unresolved":true,"context_lines":[{"line_number":1422,"context_line":"                # for the guest before destroying it."},{"line_number":1423,"context_line":"                serials \u003d self._get_serial_ports_from_guest(guest)"},{"line_number":1424,"context_line":"                for hostname, port in serials:"},{"line_number":1425,"context_line":"                    serial_console.release_port(host\u003dhostname, port\u003dport)"},{"line_number":1426,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1427,"context_line":"            # VM no longer exists"},{"line_number":1428,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"290e510a_2b541878","line":1425,"updated":"2022-12-07 09:22:57.000000000","message":"Hum.. I\u0027m not a quite sure it\u0027s how we should handle this point. I think what you are looking for is a way to identify what was the action and the instance related. You also probably want the upper layer to catch the exception and log detail if needed. I don\u0027t think it is to the lower layer to log everything.\n\nWhat about to extend InstanceNotFound with InstanceNotFoundInVirtDriver(action, instance)\n\nBut that would be a much larger work I can understand.","commit_id":"962f8f47bfd02fab2f0146f24c385545824757be"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"dd1cf12861317d7e8a3b6002f9702fb9e185d881","unresolved":false,"context_lines":[{"line_number":1422,"context_line":"                # for the guest before destroying it."},{"line_number":1423,"context_line":"                serials \u003d self._get_serial_ports_from_guest(guest)"},{"line_number":1424,"context_line":"                for hostname, port in serials:"},{"line_number":1425,"context_line":"                    serial_console.release_port(host\u003dhostname, port\u003dport)"},{"line_number":1426,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1427,"context_line":"            # VM no longer exists"},{"line_number":1428,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bd60bee3_01760012","line":1425,"in_reply_to":"290e510a_2b541878","updated":"2022-12-07 12:41:38.000000000","message":"Thank you for your comment. The goal here is to add extra log message to simplify troubleshooting, not to change existing interfaces. Please take a careful look at commit message and function [1].\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/host.py#L660-L672","commit_id":"962f8f47bfd02fab2f0146f24c385545824757be"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"04b8b61d81b4172ca8bab54c22155118fd17d555","unresolved":false,"context_lines":[{"line_number":1422,"context_line":"                # for the guest before destroying it."},{"line_number":1423,"context_line":"                serials \u003d self._get_serial_ports_from_guest(guest)"},{"line_number":1424,"context_line":"                for hostname, port in serials:"},{"line_number":1425,"context_line":"                    serial_console.release_port(host\u003dhostname, port\u003dport)"},{"line_number":1426,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1427,"context_line":"            # VM no longer exists"},{"line_number":1428,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"af73683f_a63d5a48","line":1425,"in_reply_to":"b01dbff3_b6cfac2b","updated":"2022-12-08 17:08:38.000000000","message":"Hi Sahid.\n\nWe log exactly the same messages for same error in other parts of the same library. Please take a second look.","commit_id":"962f8f47bfd02fab2f0146f24c385545824757be"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ca1542b32410c364b217853d2df94f77c55b253a","unresolved":false,"context_lines":[{"line_number":1422,"context_line":"                # for the guest before destroying it."},{"line_number":1423,"context_line":"                serials \u003d self._get_serial_ports_from_guest(guest)"},{"line_number":1424,"context_line":"                for hostname, port in serials:"},{"line_number":1425,"context_line":"                    serial_console.release_port(host\u003dhostname, port\u003dport)"},{"line_number":1426,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1427,"context_line":"            # VM no longer exists"},{"line_number":1428,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"ca39ac24_df3d4aba","line":1425,"in_reply_to":"bd60bee3_01760012","updated":"2022-12-08 07:31:42.000000000","message":"Mentioning what you want do to in the commit message is not enough. That should also make sense. Adding bunch of logs message in a low lever driver is certainly not right\n\nYou want this layer to return details for upper layer. It\u0027s the role of the upper layer to log things or not.\n\nNot only libvirt driver is using InstanceNotFound without sharing details.","commit_id":"962f8f47bfd02fab2f0146f24c385545824757be"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f6e22ec8d3116fb88f2c44ef8392df3c58ee061f","unresolved":true,"context_lines":[{"line_number":1422,"context_line":"                # for the guest before destroying it."},{"line_number":1423,"context_line":"                serials \u003d self._get_serial_ports_from_guest(guest)"},{"line_number":1424,"context_line":"                for hostname, port in serials:"},{"line_number":1425,"context_line":"                    serial_console.release_port(host\u003dhostname, port\u003dport)"},{"line_number":1426,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1427,"context_line":"            # VM no longer exists"},{"line_number":1428,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"b01dbff3_b6cfac2b","line":1425,"in_reply_to":"ca39ac24_df3d4aba","updated":"2022-12-08 07:32:08.000000000","message":"not resolved.","commit_id":"962f8f47bfd02fab2f0146f24c385545824757be"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3e9592f18a8015db229393e5f2802077aee9c338","unresolved":true,"context_lines":[{"line_number":1550,"context_line":"                                   \u0027e\u0027: encodeutils.exception_to_unicode(e)},"},{"line_number":1551,"context_line":"                                  instance\u003dinstance)"},{"line_number":1552,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1553,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":1554,"context_line":"                     \u0027%s. There is no libvirt domain to undefine.\u0027,"},{"line_number":1555,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":1556,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9404efe6_2f377ef3","line":1553,"updated":"2023-01-16 12:23:39.000000000","message":"Same here, there is not reasons that the operator would be interested to see this log. This function is a private process..","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"13ad9830509d7fb6461812efdf22a8598183b38e","unresolved":true,"context_lines":[{"line_number":1550,"context_line":"                                   \u0027e\u0027: encodeutils.exception_to_unicode(e)},"},{"line_number":1551,"context_line":"                                  instance\u003dinstance)"},{"line_number":1552,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1553,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":1554,"context_line":"                     \u0027%s. There is no libvirt domain to undefine.\u0027,"},{"line_number":1555,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":1556,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3422b609_b7a9eecd","line":1553,"in_reply_to":"01c80cfb_acc57f4e","updated":"2023-01-18 12:58:13.000000000","message":"I also thought about warning, but this message could be logged in situations when everything is fine and when something is wrong. Most log messages will be logged for the first case, so warning message would be misleading for people who monitor logs and troubleshoot warnings/errors.","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"42b17d9ac8534291eb2818c1b48c88642f27ed53","unresolved":false,"context_lines":[{"line_number":1550,"context_line":"                                   \u0027e\u0027: encodeutils.exception_to_unicode(e)},"},{"line_number":1551,"context_line":"                                  instance\u003dinstance)"},{"line_number":1552,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1553,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":1554,"context_line":"                     \u0027%s. There is no libvirt domain to undefine.\u0027,"},{"line_number":1555,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":1556,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3c228505_66331b47","line":1553,"in_reply_to":"3422b609_b7a9eecd","updated":"2023-01-30 15:30:43.000000000","message":"Done","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d604a79b25f3c7c9203d51e8fad07a3cb7a0b18b","unresolved":true,"context_lines":[{"line_number":1550,"context_line":"                                   \u0027e\u0027: encodeutils.exception_to_unicode(e)},"},{"line_number":1551,"context_line":"                                  instance\u003dinstance)"},{"line_number":1552,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1553,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":1554,"context_line":"                     \u0027%s. There is no libvirt domain to undefine.\u0027,"},{"line_number":1555,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":1556,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"01c80cfb_acc57f4e","line":1553,"in_reply_to":"52a33d79_09d415eb","updated":"2023-01-17 16:57:39.000000000","message":"In such case so I would suggest a warning","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"2940c973632c236a25407767cee1e65373427a44","unresolved":true,"context_lines":[{"line_number":1550,"context_line":"                                   \u0027e\u0027: encodeutils.exception_to_unicode(e)},"},{"line_number":1551,"context_line":"                                  instance\u003dinstance)"},{"line_number":1552,"context_line":"        except exception.InstanceNotFound:"},{"line_number":1553,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":1554,"context_line":"                     \u0027%s. There is no libvirt domain to undefine.\u0027,"},{"line_number":1555,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":1556,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"52a33d79_09d415eb","line":1553,"in_reply_to":"9404efe6_2f377ef3","updated":"2023-01-17 14:42:53.000000000","message":"The logic here is that if Nova tries to undefine/delete domain which doesn\u0027t exist, then something could be wrong. There could be a problem or can be OK. In the first case it is useful to log this information for normal Nova log mode to let operator know what happened when he will troubleshoot this.","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3e9592f18a8015db229393e5f2802077aee9c338","unresolved":true,"context_lines":[{"line_number":4028,"context_line":"        except exception.InstanceNotFound:"},{"line_number":4029,"context_line":"            # If the instance has gone then we don\u0027t need to"},{"line_number":4030,"context_line":"            # wait for it to shutdown"},{"line_number":4031,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":4032,"context_line":"                     \u0027%s. There is no libvirt domain to destroy.\u0027,"},{"line_number":4033,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":4034,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":7,"id":"c8a25089_15ab50a6","line":4031,"updated":"2023-01-16 12:23:39.000000000","message":"Why operators would be interested to see such technical information in its logs?","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"42b17d9ac8534291eb2818c1b48c88642f27ed53","unresolved":false,"context_lines":[{"line_number":4028,"context_line":"        except exception.InstanceNotFound:"},{"line_number":4029,"context_line":"            # If the instance has gone then we don\u0027t need to"},{"line_number":4030,"context_line":"            # wait for it to shutdown"},{"line_number":4031,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":4032,"context_line":"                     \u0027%s. There is no libvirt domain to destroy.\u0027,"},{"line_number":4033,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":4034,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":7,"id":"bcd4f48f_d3f69b84","line":4031,"in_reply_to":"3155c5e1_af36fb31","updated":"2023-01-30 15:30:43.000000000","message":"Done","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d604a79b25f3c7c9203d51e8fad07a3cb7a0b18b","unresolved":true,"context_lines":[{"line_number":4028,"context_line":"        except exception.InstanceNotFound:"},{"line_number":4029,"context_line":"            # If the instance has gone then we don\u0027t need to"},{"line_number":4030,"context_line":"            # wait for it to shutdown"},{"line_number":4031,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":4032,"context_line":"                     \u0027%s. There is no libvirt domain to destroy.\u0027,"},{"line_number":4033,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":4034,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":7,"id":"3155c5e1_af36fb31","line":4031,"in_reply_to":"695fe2ef_28f6d68a","updated":"2023-01-17 16:57:39.000000000","message":"ditto","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"2940c973632c236a25407767cee1e65373427a44","unresolved":true,"context_lines":[{"line_number":4028,"context_line":"        except exception.InstanceNotFound:"},{"line_number":4029,"context_line":"            # If the instance has gone then we don\u0027t need to"},{"line_number":4030,"context_line":"            # wait for it to shutdown"},{"line_number":4031,"context_line":"            LOG.info(\u0027Could not find domain in libvirt for instance \u0027"},{"line_number":4032,"context_line":"                     \u0027%s. There is no libvirt domain to destroy.\u0027,"},{"line_number":4033,"context_line":"                     instance.name, instance\u003dinstance)"},{"line_number":4034,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":7,"id":"695fe2ef_28f6d68a","line":4031,"in_reply_to":"c8a25089_15ab50a6","updated":"2023-01-17 14:42:53.000000000","message":"Pretty much same situation as before: it could be useful for troubleshooting because this error is raised when we try to stop an instance which no longer exist. Attached bug is a good example of such problem.","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"3e9592f18a8015db229393e5f2802077aee9c338","unresolved":true,"context_lines":[{"line_number":8335,"context_line":"            except exception.InstanceNotFound:"},{"line_number":8336,"context_line":"                # Bail out early if libvirt doesn\u0027t know about it since we"},{"line_number":8337,"context_line":"                # can\u0027t know the existing mediated devices"},{"line_number":8338,"context_line":"                LOG.debug(\"Domain doesn\u0027t exist, empty list of mediated \""},{"line_number":8339,"context_line":"                          \"devices is going to be returned.\","},{"line_number":8340,"context_line":"                          instance\u003dinstance)"},{"line_number":8341,"context_line":"                return {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"d8f8f266_aacc9662","line":8338,"updated":"2023-01-16 12:23:39.000000000","message":"Fair enough for this one has this is a edge case that we may want to know about","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"42b17d9ac8534291eb2818c1b48c88642f27ed53","unresolved":false,"context_lines":[{"line_number":8335,"context_line":"            except exception.InstanceNotFound:"},{"line_number":8336,"context_line":"                # Bail out early if libvirt doesn\u0027t know about it since we"},{"line_number":8337,"context_line":"                # can\u0027t know the existing mediated devices"},{"line_number":8338,"context_line":"                LOG.debug(\"Domain doesn\u0027t exist, empty list of mediated \""},{"line_number":8339,"context_line":"                          \"devices is going to be returned.\","},{"line_number":8340,"context_line":"                          instance\u003dinstance)"},{"line_number":8341,"context_line":"                return {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"877f5ff3_7de2e740","line":8338,"in_reply_to":"d8f8f266_aacc9662","updated":"2023-01-30 15:30:43.000000000","message":"Done","commit_id":"b5d95357022db2c764f63fdcb26d5664bd80da89"}]}
