)]}'
{"nova/network/security_group/neutron_driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c6b7c076e219077fb8fcbb86dc64ae6952ed3827","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                # There could be a race between deleting an instance and"},{"line_number":339,"context_line":"                # retrieving its port groups from Neutron. In this case"},{"line_number":340,"context_line":"                # PortNotFoundClient is raised and it can be safely ignored"},{"line_number":341,"context_line":"                pass"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        return ports"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_98f8f67c","line":341,"range":{"start_line":341,"start_character":16,"end_line":341,"end_character":20},"updated":"2018-04-30 13:39:37.000000000","message":"We should log something here.  I don\u0027t really have a sense for how \"unusual\" it is for this race to occur (when/why are we getting ports at the same time as deleting the instance?), but the log level should be set accordingly.","commit_id":"50f2d324b51d6e6f79503a648e1f76c9a2ed6ca1"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"cbcd5c26e42bbe02ee14acb5b34ede4890ff93a5","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                # There could be a race between deleting an instance and"},{"line_number":339,"context_line":"                # retrieving its port groups from Neutron. In this case"},{"line_number":340,"context_line":"                # PortNotFoundClient is raised and it can be safely ignored"},{"line_number":341,"context_line":"                pass"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        return ports"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_b3463d21","line":341,"range":{"start_line":341,"start_character":16,"end_line":341,"end_character":20},"in_reply_to":"9f6a8fd7_98f8f67c","updated":"2018-04-30 14:09:09.000000000","message":"This happens intermittently (1 out of 16) when executing Rally test \"boot_and_delete_server_with_secgroups\". I think debug level should be OK for this.","commit_id":"50f2d324b51d6e6f79503a648e1f76c9a2ed6ca1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"384787013d6e11ac5b38e84cca0a5540c6befcce","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            search_opts \u003d {\u0027device_id\u0027: ids}"},{"line_number":335,"context_line":"            try:"},{"line_number":336,"context_line":"                ports.extend(neutron.list_ports(**search_opts).get(\u0027ports\u0027))"},{"line_number":337,"context_line":"            except n_exc.PortNotFoundClient:"},{"line_number":338,"context_line":"                # There could be a race between deleting an instance and"},{"line_number":339,"context_line":"                # retrieving its port groups from Neutron. In this case"},{"line_number":340,"context_line":"                # PortNotFoundClient is raised and it can be safely ignored"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_639c335d","line":337,"updated":"2018-05-08 20:57:37.000000000","message":"I think when we get here, the servers passed in have their task_state set to \u0027deleting\u0027 so we could technically filter out any instances that are being deleted and retry the query, but that might also be racy. I\u0027m not super happy about just blanket ignoring the 404, but I don\u0027t really have a better solution.","commit_id":"1a0179f7ab9b9c7f07ce9c4dd681486de5a4443a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"384787013d6e11ac5b38e84cca0a5540c6befcce","unresolved":false,"context_lines":[{"line_number":336,"context_line":"                ports.extend(neutron.list_ports(**search_opts).get(\u0027ports\u0027))"},{"line_number":337,"context_line":"            except n_exc.PortNotFoundClient:"},{"line_number":338,"context_line":"                # There could be a race between deleting an instance and"},{"line_number":339,"context_line":"                # retrieving its port groups from Neutron. In this case"},{"line_number":340,"context_line":"                # PortNotFoundClient is raised and it can be safely ignored"},{"line_number":341,"context_line":"                LOG.debug(\"Port not found for device with id %s\", ids)"},{"line_number":342,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_c31bc718","line":339,"range":{"start_line":339,"start_character":38,"end_line":339,"end_character":44},"updated":"2018-05-08 20:57:37.000000000","message":"I\u0027m not sure why this (and the commit message) say port \"groups\" since we\u0027re not getting port groups, we\u0027re getting security groups based on the ports for the server. I\u0027d just remove \"groups\" here and in the commit message.","commit_id":"1a0179f7ab9b9c7f07ce9c4dd681486de5a4443a"}]}
