)]}'
{"swift/obj/reconstructor.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6fc50d8b09b8b8176af60c30f6f6eeabff3f6b78","unresolved":true,"context_lines":[{"line_number":486,"context_line":"            # node to our target instead of rebuild."},{"line_number":487,"context_line":"            bucket.found_fragment \u003d True"},{"line_number":488,"context_line":"            bucket.useful_responses \u003d {fi_to_rebuild: resp}"},{"line_number":489,"context_line":"            bucket.num_responses \u003d 1"},{"line_number":490,"context_line":"            self.logger.debug("},{"line_number":491,"context_line":"                \u0027Found existing frag #%s at %s while rebuilding to %s\u0027,"},{"line_number":492,"context_line":"                fi_to_rebuild, resp.full_path,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9e60facb_9bc1c2da","line":489,"updated":"2021-05-12 00:40:01.000000000","message":"I\u0027ve got this feeling like we ought to make up a new bucket and return *that* -- can\u0027t quite put my finger on what the badness is in throwing away all those other responses... but it doesn\u0027t quite feel right.","commit_id":"5d27fab8e19799d13fb9b755a7efec0631700ce5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6fc50d8b09b8b8176af60c30f6f6eeabff3f6b78","unresolved":true,"context_lines":[{"line_number":593,"context_line":"            bucket \u003d self._handle_fragment_response("},{"line_number":594,"context_line":"                node, policy, partition, fi_to_rebuild, path, buckets,"},{"line_number":595,"context_line":"                error_responses, resp)"},{"line_number":596,"context_line":"            if bucket and bucket.is_useful(policy):"},{"line_number":597,"context_line":"                useful_bucket \u003d bucket"},{"line_number":598,"context_line":"                break"},{"line_number":599,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"67f61771_9a5f6351","line":596,"range":{"start_line":596,"start_character":33,"end_line":596,"end_character":42},"updated":"2021-05-12 00:40:01.000000000","message":"+1, I like making this a method","commit_id":"5d27fab8e19799d13fb9b755a7efec0631700ce5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6fc50d8b09b8b8176af60c30f6f6eeabff3f6b78","unresolved":true,"context_lines":[{"line_number":738,"context_line":"                        chunk \u003d _get_one_fragment(responses[0])"},{"line_number":739,"context_line":"                except (Exception, Timeout):"},{"line_number":740,"context_line":"                    self.logger.exception("},{"line_number":741,"context_line":"                        _(\"Error trying to rebuild %(path)s \""},{"line_number":742,"context_line":"                          \"policy#%(policy)d frag#%(frag_index)s from single \""},{"line_number":743,"context_line":"                          \"fragment\"),"},{"line_number":744,"context_line":"                        {\u0027path\u0027: path,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e0fab704_1d1c4f46","line":741,"range":{"start_line":741,"start_character":43,"end_line":741,"end_character":50},"updated":"2021-05-12 00:40:01.000000000","message":"nit: \"revert\"? \"stream\"?","commit_id":"5d27fab8e19799d13fb9b755a7efec0631700ce5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"aedaa106f2394a405563264ddc90498e26f65104","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        ring \u003d policy.object_ring"},{"line_number":569,"context_line":"        primary_nodes \u003d ring.get_part_nodes(partition)"},{"line_number":570,"context_line":"        if ring.get_last_part_node(partition):"},{"line_number":571,"context_line":"            primary_nodes.append(ring.get_last_part_node(partition))"},{"line_number":572,"context_line":"        # primary_node_count is the maximum number of nodes to consume in a"},{"line_number":573,"context_line":"        # normal rebuild attempt when there is no quarantine candidate,"},{"line_number":574,"context_line":"        # including the node to which we are rebuilding"}],"source_content_type":"text/x-python","patch_set":3,"id":"78b7518c_d4df7792","line":571,"updated":"2021-05-12 09:05:13.000000000","message":"this is why it\u0027s off the last workers patch. this means it\u0027ll look for the last worker as also attempts to find enough flags to rebuild, and old primary should win if it has the flag..  not that I\u0027ve tested it yet tho.","commit_id":"4395b051cbe042a2c06fe47f3f2ad3704ecdab7a"}]}
