)]}'
{"swift/common/request_helpers.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"67b347a6aa866cadf7bf0a177798d604acd577ea","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                    seg_size is not None and last_byte \u003d\u003d seg_size - 1)"},{"line_number":357,"context_line":"                if time.time() - start_time \u003e self.max_get_time:"},{"line_number":358,"context_line":"                    raise SegmentError("},{"line_number":359,"context_line":"                        \u0027While processing manifest %s, \u0027"},{"line_number":360,"context_line":"                        \u0027max LO GET time of %ds exceeded\u0027 %"},{"line_number":361,"context_line":"                        (self.name, self.max_get_time))"},{"line_number":362,"context_line":"                # The \"multipart-manifest\u003dget\" query param ensures that the"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_7e2e08fb","line":359,"updated":"2017-08-24 19:11:27.000000000","message":"there\u0027s no tests for this one","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"67b347a6aa866cadf7bf0a177798d604acd577ea","unresolved":false,"context_lines":[{"line_number":413,"context_line":"            e_type, e_value, e_traceback \u003d sys.exc_info()"},{"line_number":414,"context_line":"            if time.time() - start_time \u003e self.max_get_time:"},{"line_number":415,"context_line":"                raise SegmentError("},{"line_number":416,"context_line":"                    \u0027While processing manifest %s, \u0027"},{"line_number":417,"context_line":"                    \u0027max LO GET time of %ds exceeded\u0027 %"},{"line_number":418,"context_line":"                    (self.name, self.max_get_time))"},{"line_number":419,"context_line":"            if pending_req:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_5e358c45","line":416,"updated":"2017-08-24 19:11:27.000000000","message":"or this one","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"67b347a6aa866cadf7bf0a177798d604acd577ea","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                \u0027max LO GET time of %ds exceeded\u0027 %"},{"line_number":427,"context_line":"                (self.name, self.max_get_time))"},{"line_number":428,"context_line":"        if pending_req:"},{"line_number":429,"context_line":"            yield pending_req, pending_etag, pending_size"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _internal_iter(self):"},{"line_number":432,"context_line":"        bytes_left \u003d self.response_body_length"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_beeb50da","line":429,"updated":"2017-08-24 19:11:27.000000000","message":"I can\u0027t help but think this whole pattern would have been better addressed with a global Timeout around the iteration of _coalesce_requests below?","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"3e6c2d4b538728e01ea89a33a4fa30a697f3e896","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                \u0027max LO GET time of %ds exceeded\u0027 %"},{"line_number":427,"context_line":"                (self.name, self.max_get_time))"},{"line_number":428,"context_line":"        if pending_req:"},{"line_number":429,"context_line":"            yield pending_req, pending_etag, pending_size"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _internal_iter(self):"},{"line_number":432,"context_line":"        bytes_left \u003d self.response_body_length"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_e933d512","line":429,"in_reply_to":"7f287b81_315d51e9","updated":"2017-08-30 19:18:15.000000000","message":"Seriously. I made that exact change when poking at the SLO pre/postamble patch to try to make it easier to understand.\n\nIMO it\u0027s out of scope for this patch, though.","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1db249a1259ba7fc6eb09bcbf862184494806546","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                \u0027max LO GET time of %ds exceeded\u0027 %"},{"line_number":427,"context_line":"                (self.name, self.max_get_time))"},{"line_number":428,"context_line":"        if pending_req:"},{"line_number":429,"context_line":"            yield pending_req, pending_etag, pending_size"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def _internal_iter(self):"},{"line_number":432,"context_line":"        bytes_left \u003d self.response_body_length"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_315d51e9","line":429,"in_reply_to":"7f287b81_beeb50da","updated":"2017-08-24 19:23:40.000000000","message":"Yeah, probably would be better. I\u0027m torn about whether to grow the scope here (I\u0027m *really* interested in https://review.openstack.org/#/c/496535/ !) vs. doing it as a follow-up.","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"67b347a6aa866cadf7bf0a177798d604acd577ea","unresolved":false,"context_lines":[{"line_number":437,"context_line":"                if not is_success(seg_resp.status_int):"},{"line_number":438,"context_line":"                    close_if_possible(seg_resp.app_iter)"},{"line_number":439,"context_line":"                    raise SegmentError("},{"line_number":440,"context_line":"                        \u0027While processing manifest %s, \u0027"},{"line_number":441,"context_line":"                        \u0027got %d while retrieving %s\u0027 %"},{"line_number":442,"context_line":"                        (self.name, seg_resp.status_int, seg_req.path))"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_9e9534e7","line":440,"updated":"2017-08-24 19:11:27.000000000","message":"nice.","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"67b347a6aa866cadf7bf0a177798d604acd577ea","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                raise SegmentError("},{"line_number":504,"context_line":"                    \u0027Not enough bytes for %s; closing connection\u0027 % self.name)"},{"line_number":505,"context_line":"        except (ListingIterError, SegmentError) as err:"},{"line_number":506,"context_line":"            self.logger.error(\u0027ERROR: An error occurred while retrieving \u0027"},{"line_number":507,"context_line":"                              \u0027segments: %s\u0027 % err)"},{"line_number":508,"context_line":"            raise"},{"line_number":509,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_7e3168a2","line":506,"updated":"2017-08-24 19:11:27.000000000","message":"ERROR probably isn\u0027t much more useful here than in those exception msgs...\n\nWe loose some info about *which* SegmentError was raised... (i.e. lineno)","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"3e6c2d4b538728e01ea89a33a4fa30a697f3e896","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                raise SegmentError("},{"line_number":504,"context_line":"                    \u0027Not enough bytes for %s; closing connection\u0027 % self.name)"},{"line_number":505,"context_line":"        except (ListingIterError, SegmentError) as err:"},{"line_number":506,"context_line":"            self.logger.error(\u0027ERROR: An error occurred while retrieving \u0027"},{"line_number":507,"context_line":"                              \u0027segments: %s\u0027 % err)"},{"line_number":508,"context_line":"            raise"},{"line_number":509,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_09018106","line":506,"in_reply_to":"7f287b81_7e3168a2","updated":"2017-08-30 19:18:15.000000000","message":"True, but the error texts are different enough that we can figure it out.","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"}],"test/unit/common/middleware/test_slo.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"67b347a6aa866cadf7bf0a177798d604acd577ea","unresolved":false,"context_lines":[{"line_number":2809,"context_line":"            \u0027ERROR: An error occurred while retrieving segments: \u0027"},{"line_number":2810,"context_line":"            \u0027While processing manifest /v1/AUTH_test/gettest/manifest-abcd, \u0027"},{"line_number":2811,"context_line":"            \u0027max LO GET time of 86400s exceeded\u0027,"},{"line_number":2812,"context_line":"        ])"},{"line_number":2813,"context_line":"        self.assertEqual(self.app.calls, ["},{"line_number":2814,"context_line":"            (\u0027GET\u0027, \u0027/v1/AUTH_test/gettest/manifest-abcd\u0027),"},{"line_number":2815,"context_line":"            (\u0027GET\u0027, \u0027/v1/AUTH_test/gettest/manifest-bc\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_1ecca468","line":2812,"updated":"2017-08-24 19:11:27.000000000","message":"Yeah, I guess there\u0027s not much more to say... maybe something about how many segment were processed so far?","commit_id":"df5d35e4eb68f58601744632d89f6405379de6b5"}]}
