)]}'
{"doc/source/admin/networking.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c30a50492fa68e1df29414fec6ad1047bc136cb4","unresolved":true,"context_lines":[{"line_number":29,"context_line":"   Nova only supports PCI addresses where the fields are restricted to the"},{"line_number":30,"context_line":"   following maximum value:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   * domain - 0xFFFF"},{"line_number":33,"context_line":"   * bus - 0xFF"},{"line_number":34,"context_line":"   * slot - 0x1F"},{"line_number":35,"context_line":"   * function - 0x7"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7e469729_931bf4e8","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":20},"updated":"2020-12-01 11:35:50.000000000","message":"``0xffff`` ? ditto for below","commit_id":"8c9d6fc8f073cde78b79ae259c9915216f5d59b0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bbc617e864908b2b17cf0ec1d4b6dc852b675a02","unresolved":true,"context_lines":[{"line_number":29,"context_line":"   Nova only supports PCI addresses where the fields are restricted to the"},{"line_number":30,"context_line":"   following maximum value:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   * domain - 0xFFFF"},{"line_number":33,"context_line":"   * bus - 0xFF"},{"line_number":34,"context_line":"   * slot - 0x1F"},{"line_number":35,"context_line":"   * function - 0x7"}],"source_content_type":"text/x-rst","patch_set":9,"id":"98ac41fa_9cabcba8","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":20},"in_reply_to":"7e469729_931bf4e8","updated":"2020-12-16 16:37:20.000000000","message":"I can but why? Is there a standard that prefers small letters in hexa over capitals?","commit_id":"8c9d6fc8f073cde78b79ae259c9915216f5d59b0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"83197f79786007bbc67577b4ebfeaf6f23002efc","unresolved":true,"context_lines":[{"line_number":29,"context_line":"   Nova only supports PCI addresses where the fields are restricted to the"},{"line_number":30,"context_line":"   following maximum value:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   * domain - 0xFFFF"},{"line_number":33,"context_line":"   * bus - 0xFF"},{"line_number":34,"context_line":"   * slot - 0x1F"},{"line_number":35,"context_line":"   * function - 0x7"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ab10490e_0fa5c2b3","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":20},"in_reply_to":"98ac41fa_9cabcba8","updated":"2020-12-16 18:06:35.000000000","message":"the default represation is unspecified and veries depeneidn on tool and os.\n\ni think hexdump default to lowercase where as on windows the tools tend to use uppercase.\n\nso no there is not style guide or spec on this topic that im aware of this is personal perference really and i think both are fine.","commit_id":"8c9d6fc8f073cde78b79ae259c9915216f5d59b0"}],"nova/pci/devspec.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4812d5b478461c3d6d037d9e64cdf736f47c957c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            raise exception.PciDeviceWrongAddressFormat(address\u003dpci_addr)"},{"line_number":91,"context_line":"        except exception.PciConfigInvalidWhitelist as e:"},{"line_number":92,"context_line":"            # Most likely this is due to 32bit domain in PCI address. Nova"},{"line_number":93,"context_line":"            # does not support such devices. See bug 1897528 for details."},{"line_number":94,"context_line":"            raise exception.PciInvalidDevice("},{"line_number":95,"context_line":"                address\u003dpci_addr,"},{"line_number":96,"context_line":"                # NOTE(gibi): this is ugly but PhysicalPciAddress reuses the"},{"line_number":97,"context_line":"                # code from PciAddressSpec that was originally designed to"},{"line_number":98,"context_line":"                # parse Whitelist spec. Hence the raised exception talks about"},{"line_number":99,"context_line":"                # whitelist config. This is misleading as in our case the PCI"},{"line_number":100,"context_line":"                # address that we failed to parse came from the hypervisor."},{"line_number":101,"context_line":"                reason\u003dstr(e).replace("},{"line_number":102,"context_line":"                    \u0027Invalid PCI devices Whitelist config:\u0027, \u0027The\u0027))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def match(self, phys_pci_addr):"},{"line_number":105,"context_line":"        conditions \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"7f6b1bfe_2673b7e9","line":102,"range":{"start_line":93,"start_character":13,"end_line":102,"end_character":68},"updated":"2020-10-15 18:02:16.000000000","message":"do we really need this?\n\nwe can just catch PciConfigInvalidWhitelist in \ndevice_assignable and do the transfromation there on the log message\n\nbefore this change if we raised this excption here \n\nhttps://github.com/openstack/nova/blob/2c3ff1004e8812da0bc4e5502762e6b9a7650846/nova/pci/whitelist.py#L75\n\nit would have been propogated up as a PciConfigInvalidWhitelist excption from the contution of the \nWhitelist\n\nbut in this case if the validation failed  on lines 55-65\n\nwe woudl now be raising PciInvalidDevice form the consturiton of the whitelist object\n\nso if you did put in a 32bit whitelist we would change teh message returned.","commit_id":"9650a66a8360a406c0f356791a34c4a27d536d5b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"03f9cfb3644111b49364d99eb7da58fbdd113fe4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            raise exception.PciDeviceWrongAddressFormat(address\u003dpci_addr)"},{"line_number":91,"context_line":"        except exception.PciConfigInvalidWhitelist as e:"},{"line_number":92,"context_line":"            # Most likely this is due to 32bit domain in PCI address. Nova"},{"line_number":93,"context_line":"            # does not support such devices. See bug 1897528 for details."},{"line_number":94,"context_line":"            raise exception.PciInvalidDevice("},{"line_number":95,"context_line":"                address\u003dpci_addr,"},{"line_number":96,"context_line":"                # NOTE(gibi): this is ugly but PhysicalPciAddress reuses the"},{"line_number":97,"context_line":"                # code from PciAddressSpec that was originally designed to"},{"line_number":98,"context_line":"                # parse Whitelist spec. Hence the raised exception talks about"},{"line_number":99,"context_line":"                # whitelist config. This is misleading as in our case the PCI"},{"line_number":100,"context_line":"                # address that we failed to parse came from the hypervisor."},{"line_number":101,"context_line":"                reason\u003dstr(e).replace("},{"line_number":102,"context_line":"                    \u0027Invalid PCI devices Whitelist config:\u0027, \u0027The\u0027))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def match(self, phys_pci_addr):"},{"line_number":105,"context_line":"        conditions \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"7f6b1bfe_2876e5a5","line":102,"range":{"start_line":93,"start_character":13,"end_line":102,"end_character":68},"in_reply_to":"7f6b1bfe_2673b7e9","updated":"2020-10-15 18:13:51.000000000","message":"Agreed that the new exception doesn\u0027t seem to be helpful in that it seems to still result in us ignoring all failures to parse an address from libvirt.\n\nMy comment on PS3 (which was really just a question) was whether there\u0027s a way we could avoid ignoring all parse failures and only ignore the ones that we know are related to parsing the addresses from libvirt and not the whitelist itself. We do still want to validate the whitelist as far as I understand.","commit_id":"9650a66a8360a406c0f356791a34c4a27d536d5b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"94602c601bf97bac24a557af6e795b6605f8eca9","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            raise exception.PciDeviceWrongAddressFormat(address\u003dpci_addr)"},{"line_number":91,"context_line":"        except exception.PciConfigInvalidWhitelist as e:"},{"line_number":92,"context_line":"            # Most likely this is due to 32bit domain in PCI address. Nova"},{"line_number":93,"context_line":"            # does not support such devices. See bug 1897528 for details."},{"line_number":94,"context_line":"            raise exception.PciInvalidDevice("},{"line_number":95,"context_line":"                address\u003dpci_addr,"},{"line_number":96,"context_line":"                # NOTE(gibi): this is ugly but PhysicalPciAddress reuses the"},{"line_number":97,"context_line":"                # code from PciAddressSpec that was originally designed to"},{"line_number":98,"context_line":"                # parse Whitelist spec. Hence the raised exception talks about"},{"line_number":99,"context_line":"                # whitelist config. This is misleading as in our case the PCI"},{"line_number":100,"context_line":"                # address that we failed to parse came from the hypervisor."},{"line_number":101,"context_line":"                reason\u003dstr(e).replace("},{"line_number":102,"context_line":"                    \u0027Invalid PCI devices Whitelist config:\u0027, \u0027The\u0027))"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def match(self, phys_pci_addr):"},{"line_number":105,"context_line":"        conditions \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"5f681702_3e13edba","line":102,"range":{"start_line":93,"start_character":13,"end_line":102,"end_character":68},"in_reply_to":"7f6b1bfe_2876e5a5","updated":"2020-10-16 11:19:26.000000000","message":"I think both PS4 and the PS3 ignored the parse errors from libvirt provided addresses only and let the config related parse errors to propagate to the top. PS4 had the chance to specify which address was invalid (address or phys_address). In PS5 I removed the extra exception type and kept the except block on the manager level. Let me know if this is better.","commit_id":"9650a66a8360a406c0f356791a34c4a27d536d5b"}],"nova/pci/manager.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b1f226696160c6b81e24f80140de3f40b550e44d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                # WhitelistPciAddress object to parse the host PCI device"},{"line_number":128,"context_line":"                # address. That parsing can fail if the PCI address has a 32"},{"line_number":129,"context_line":"                # bit domain. But this should not prevent processing the rest"},{"line_number":130,"context_line":"                # of the devices. So we simply skip this device and  continue."},{"line_number":131,"context_line":"                pass"},{"line_number":132,"context_line":"        self._set_hvdevs(devices)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_5b545cc6","line":130,"range":{"start_line":130,"start_character":68,"end_line":130,"end_character":69},"updated":"2020-10-08 15:13:06.000000000","message":"nit","commit_id":"5739766ca566c0eba6bdbfdde52699d2495a79d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f63bb2f0dcb230d7a2c935dfebc9c260eea1827c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                # WhitelistPciAddress object to parse the host PCI device"},{"line_number":128,"context_line":"                # address. That parsing can fail if the PCI address has a 32"},{"line_number":129,"context_line":"                # bit domain. But this should not prevent processing the rest"},{"line_number":130,"context_line":"                # of the devices. So we simply skip this device and  continue."},{"line_number":131,"context_line":"                pass"},{"line_number":132,"context_line":"        self._set_hvdevs(devices)"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_e2fbf7bb","line":130,"range":{"start_line":130,"start_character":68,"end_line":130,"end_character":69},"in_reply_to":"9f560f44_5b545cc6","updated":"2020-10-09 08:27:06.000000000","message":"Done","commit_id":"5739766ca566c0eba6bdbfdde52699d2495a79d4"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"784c88ff6cecfc5db340c971d26c1b5eb98713f7","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                    devices.append(dev)"},{"line_number":123,"context_line":"            except exception.PciConfigInvalidWhitelist:"},{"line_number":124,"context_line":"                # The raised exception is misleading as the problem is not with"},{"line_number":125,"context_line":"                # the whitelist config but with the host PCI device. The code"},{"line_number":126,"context_line":"                # that matches the host PCI device to the spec reuses the"},{"line_number":127,"context_line":"                # WhitelistPciAddress object to parse the host PCI device"},{"line_number":128,"context_line":"                # address. That parsing can fail if the PCI address has a 32"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_802617b7","line":125,"updated":"2020-10-13 20:01:10.000000000","message":"Hm, this sounds concerning in that the exception is not indicating the actual problem. Is there a way we could detect the problem accurately and raise a more appropriate exception to catch and ignore?\n\nIs there a chance that we could wrongly ignore actual invalid PCI configs because of this pass logic?","commit_id":"982e95c1dfa7b35e79e2fdfb94b42097da2c8b02"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"06d4f59faf1e81ecbc3c8b4e973b46d35206713b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                    devices.append(dev)"},{"line_number":123,"context_line":"            except exception.PciConfigInvalidWhitelist:"},{"line_number":124,"context_line":"                # The raised exception is misleading as the problem is not with"},{"line_number":125,"context_line":"                # the whitelist config but with the host PCI device. The code"},{"line_number":126,"context_line":"                # that matches the host PCI device to the spec reuses the"},{"line_number":127,"context_line":"                # WhitelistPciAddress object to parse the host PCI device"},{"line_number":128,"context_line":"                # address. That parsing can fail if the PCI address has a 32"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_cb048ec9","line":125,"in_reply_to":"7f6b1bfe_802617b7","updated":"2020-10-15 16:45:33.000000000","message":"I did a deeper surgery now. It is not a clean cut unfortunately.\n\nI\u0027m afraid of refactoring the exception handling in a bugfix that will be backported. \n\nLet me know how you feel about PS4","commit_id":"982e95c1dfa7b35e79e2fdfb94b42097da2c8b02"}]}
