)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00e8a8763ce726e9e991acf535b65e4a707c1b16","unresolved":true,"context_lines":[{"line_number":15,"context_line":"This results in the instance booted without any PCI device."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This patch does two things:"},{"line_number":18,"context_line":"1) changes the PCI claim to fail with an exception and trigger a"},{"line_number":19,"context_line":"   re-schedule instead of just logging an ERROR."},{"line_number":20,"context_line":"2) change the PciDeviceStats.support_requests that is called during"},{"line_number":21,"context_line":"   scheduling to not just filter pools for individual requests but also"},{"line_number":22,"context_line":"   consume the request from the pool within the scope of a single boot"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"843ed01d_a69061ce","line":19,"range":{"start_line":18,"start_character":2,"end_line":19,"end_character":48},"updated":"2022-08-23 15:28:53.000000000","message":"nit: technically this is two things :) but its fine","commit_id":"530f52cc2135a583620d354698aa65afe5b67850"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f71c68705bac41515f9d411d1e246b9fb3c6cfdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9e3919f2_c71ae1af","updated":"2022-08-25 14:16:16.000000000","message":"recheck nova-next: Multiple possible networks found, use a Network ID to be more specific","commit_id":"2b447b7236f95752d00ebcee8c32cfef4850cf5d"}],"nova/compute/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00e8a8763ce726e9e991acf535b65e4a707c1b16","unresolved":true,"context_lines":[{"line_number":7709,"context_line":"            LOG.info(\u0027Failed to claim PCI devices during interface attach \u0027"},{"line_number":7710,"context_line":"                     \u0027for PCI request %s\u0027, pci_reqs, instance\u003dinstance)"},{"line_number":7711,"context_line":"            raise exception.InterfaceAttachPciClaimFailed("},{"line_number":7712,"context_line":"                instance_uuid\u003dinstance.uuid)"},{"line_number":7713,"context_line":""},{"line_number":7714,"context_line":"        # NOTE(gibi): We assume that maximum one PCI devices is attached per"},{"line_number":7715,"context_line":"        # interface attach request."}],"source_content_type":"text/x-python","patch_set":3,"id":"54af56ec_6cbbb6f3","line":7712,"updated":"2022-08-23 15:28:53.000000000","message":"i was not expectin this based on teh commit message but yes this makes sense since the claim is possible raising now","commit_id":"530f52cc2135a583620d354698aa65afe5b67850"}],"nova/pci/stats.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c581d7fd08291ad549f32a738c34d47b869d5ac4","unresolved":true,"context_lines":[{"line_number":249,"context_line":"                          \"on the compute node semaphore.\")"},{"line_number":250,"context_line":"                for d in range(len(alloc_devices)):"},{"line_number":251,"context_line":"                    self.add_device(alloc_devices.pop())"},{"line_number":252,"context_line":"                raise exception.PciDeviceRequestFailed(requests\u003dpci_requests)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"            for pool in pools:"},{"line_number":255,"context_line":"                if pool[\u0027count\u0027] \u003e\u003d count:"}],"source_content_type":"text/x-python","patch_set":1,"id":"48f08a4e_95a49bce","line":252,"updated":"2022-08-18 09:41:15.000000000","message":"This is the minimal fix we need to resolve the bug. We discussed on IRC with Sean[1] about a change in the scheduler logic to reduce the chance of this codepath to be triggered by fixing the scheduler logic to not just filter the pools per request but also consume from the pools locally and temporarily.\n\n[1] https://meetings.opendev.org/irclogs/%23openstack-nova/%23openstack-nova.2022-08-17.log.html#t2022-08-17T16:53:25","commit_id":"d14c5347333a3d1c5e25b2ba29a2b0f275c35b03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00e8a8763ce726e9e991acf535b65e4a707c1b16","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                          \"on the compute node semaphore.\")"},{"line_number":250,"context_line":"                for d in range(len(alloc_devices)):"},{"line_number":251,"context_line":"                    self.add_device(alloc_devices.pop())"},{"line_number":252,"context_line":"                raise exception.PciDeviceRequestFailed(requests\u003dpci_requests)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"            for pool in pools:"},{"line_number":255,"context_line":"                if pool[\u0027count\u0027] \u003e\u003d count:"}],"source_content_type":"text/x-python","patch_set":1,"id":"eeb6db87_096a5fe3","line":252,"in_reply_to":"48f08a4e_95a49bce","updated":"2022-08-23 15:28:53.000000000","message":"Ack","commit_id":"d14c5347333a3d1c5e25b2ba29a2b0f275c35b03"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6451c6f8416575b60f1eb1b32a4d4dc36d15152a","unresolved":true,"context_lines":[{"line_number":650,"context_line":"        # objects."},{"line_number":651,"context_line":"        stats \u003d copy.deepcopy(self)"},{"line_number":652,"context_line":"        try:"},{"line_number":653,"context_line":"            stats.apply_requests(requests, numa_cells)"},{"line_number":654,"context_line":"        except exception.PciDeviceRequestFailed:"},{"line_number":655,"context_line":"            return False"},{"line_number":656,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a077db3_d23b2b6f","line":653,"updated":"2022-08-18 10:30:32.000000000","message":"This is the additional fix discussed on IRC that enhances the scheduler to detect double booking early.","commit_id":"50144cf3503255050d44a61618120c9523fda964"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00e8a8763ce726e9e991acf535b65e4a707c1b16","unresolved":false,"context_lines":[{"line_number":650,"context_line":"        # objects."},{"line_number":651,"context_line":"        stats \u003d copy.deepcopy(self)"},{"line_number":652,"context_line":"        try:"},{"line_number":653,"context_line":"            stats.apply_requests(requests, numa_cells)"},{"line_number":654,"context_line":"        except exception.PciDeviceRequestFailed:"},{"line_number":655,"context_line":"            return False"},{"line_number":656,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"969e690b_830305d2","line":653,"in_reply_to":"1a077db3_d23b2b6f","updated":"2022-08-23 15:28:53.000000000","message":"Ack","commit_id":"50144cf3503255050d44a61618120c9523fda964"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00e8a8763ce726e9e991acf535b65e4a707c1b16","unresolved":true,"context_lines":[{"line_number":647,"context_line":"        # Later the scheduler will call apply_request to consume on the"},{"line_number":648,"context_line":"        # selected host. The compute will call consume_request during PCI claim"},{"line_number":649,"context_line":"        # to consume not just from the pools but also consume PciDevice"},{"line_number":650,"context_line":"        # objects."},{"line_number":651,"context_line":"        stats \u003d copy.deepcopy(self)"},{"line_number":652,"context_line":"        try:"},{"line_number":653,"context_line":"            stats.apply_requests(requests, numa_cells)"}],"source_content_type":"text/x-python","patch_set":3,"id":"900cab17_ad1aadb2","line":650,"updated":"2022-08-23 15:28:53.000000000","message":"+1 for capturing this","commit_id":"530f52cc2135a583620d354698aa65afe5b67850"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a0db4c62feb0b6f86fbd1bb7960820c97546cdc","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        # NOTE(yjiang5): this function has high possibility to fail,"},{"line_number":643,"context_line":"        # so no exception should be triggered for performance reason."},{"line_number":644,"context_line":"        return all("},{"line_number":645,"context_line":"            self._filter_pools(self.pools, r, numa_cells) for r in requests"},{"line_number":646,"context_line":"        )"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def _apply_request("}],"source_content_type":"text/x-python","patch_set":4,"id":"6ee796b5_0c9f411d","side":"PARENT","line":645,"updated":"2022-08-25 12:09:22.000000000","message":"There are multiple users of this, so we\u0027re good to keep it","commit_id":"2aeb0a96b77e05172b13b4d1f692ff2b08f10bc9"}],"nova/tests/functional/libvirt/test_pci_sriov_servers.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00e8a8763ce726e9e991acf535b65e4a707c1b16","unresolved":true,"context_lines":[{"line_number":1508,"context_line":"        server \u003d self._create_server("},{"line_number":1509,"context_line":"            flavor_id\u003dflavor_id, networks\u003d\"none\", expected_state\u003d\u0027ERROR\u0027)"},{"line_number":1510,"context_line":"        self.assertIn(\u0027fault\u0027, server)"},{"line_number":1511,"context_line":"        self.assertIn(\u0027No valid host\u0027, server[\u0027fault\u0027][\u0027message\u0027])"},{"line_number":1512,"context_line":""},{"line_number":1513,"context_line":""},{"line_number":1514,"context_line":"class PCIServersWithPreferredNUMATest(_PCIServersTestBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3587bcb4_2a70a541","line":1511,"range":{"start_line":1511,"start_character":8,"end_line":1511,"end_character":66},"updated":"2022-08-23 15:28:53.000000000","message":"yep in this case there is only one host so it will indeed alwasy end with no valid host.","commit_id":"530f52cc2135a583620d354698aa65afe5b67850"}]}
