)]}'
{"swift/common/exceptions.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":202,"context_line":"class SegmentError(SwiftException):"},{"line_number":203,"context_line":"    def __init__(self, msg, resp\u003dNone):"},{"line_number":204,"context_line":"        super(SwiftException, self).__init__(msg)"},{"line_number":205,"context_line":"        self.resp \u003d resp"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"class LinkIterError(SwiftException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_d530fda1","line":205,"updated":"2020-11-14 17:23:18.000000000","message":"i wonder if we need to close this or drain the app_iter or something","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"}],"swift/common/middleware/slo.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1135d2ee919a613305670eb570933c77ee15b559","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    get_sys_meta_prefix, update_etag_is_at_header, resolve_etag_is_at_header, \\"},{"line_number":343,"context_line":"    get_container_update_override_key, update_ignore_range_header"},{"line_number":344,"context_line":"from swift.common.constraints import check_utf8"},{"line_number":345,"context_line":"from swift.common.http import HTTP_NOT_FOUND, HTTP_UNAUTHORIZED, is_success, is_server_error"},{"line_number":346,"context_line":"from swift.common.wsgi import WSGIContext, make_subrequest"},{"line_number":347,"context_line":"from swift.common.middleware.bulk import get_response_body, \\"},{"line_number":348,"context_line":"    ACCEPTABLE_FORMATS, Bulk"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_dca30ab1","line":345,"updated":"2020-11-13 23:42:03.000000000","message":"pep8: E501 line too long (92 \u003e 79 characters)","commit_id":"a63f3e6444a0f7fac613e2b0cdef9ea2b699a123"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"            # their Etag/Content Length no longer match the connection"},{"line_number":1053,"context_line":"            # will drop. In this case a 409 Conflict will be logged in"},{"line_number":1054,"context_line":"            # the proxy logs and the user will receive incomplete results."},{"line_number":1055,"context_line":"            if hasattr(err, \u0027resp\u0027) and is_server_error(err.resp.status_int):"},{"line_number":1056,"context_line":"                return HTTPServiceUnavailable(request\u003dreq)"},{"line_number":1057,"context_line":"            return HTTPConflict(request\u003dreq)"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_351fb108","line":1055,"updated":"2020-11-14 17:23:18.000000000","message":"and i guess sometimes the resp attribute could be None","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"}],"swift/common/request_helpers.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1135d2ee919a613305670eb570933c77ee15b559","unresolved":false,"context_lines":[{"line_number":629,"context_line":"                        \"headers had %(etag)s, but object MD5 was actually \""},{"line_number":630,"context_line":"                        \"%(actual)s\" %"},{"line_number":631,"context_line":"                        {\u0027seg\u0027: seg_req.path, \u0027etag\u0027: seg_resp.etag,"},{"line_number":632,"context_line":"                         \u0027name\u0027: self.name, \u0027actual\u0027: seg_hash.hexdigest()}, seg_resp)"},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"    def _byte_counting_iter(self):"},{"line_number":635,"context_line":"        # Checks that we give the client the right number of bytes. Raises"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_7cc3d657","line":632,"updated":"2020-11-13 23:42:03.000000000","message":"pep8: E501 line too long (86 \u003e 79 characters)","commit_id":"a63f3e6444a0f7fac613e2b0cdef9ea2b699a123"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":567,"context_line":"                # Error body should be short"},{"line_number":568,"context_line":"                body \u003d seg_resp.body"},{"line_number":569,"context_line":"                if not six.PY2:"},{"line_number":570,"context_line":"                    body \u003d body.decode(\u0027utf8\u0027)"},{"line_number":571,"context_line":"                raise SegmentError("},{"line_number":572,"context_line":"                    \u0027While processing manifest %s, \u0027"},{"line_number":573,"context_line":"                    \u0027got %d (%s) while retrieving %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_b533c1aa","line":570,"updated":"2020-11-14 17:23:18.000000000","message":"ah, maybe we\u0027ve already drained it","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":573,"context_line":"                    \u0027got %d (%s) while retrieving %s\u0027 %"},{"line_number":574,"context_line":"                    (self.name, seg_resp.status_int,"},{"line_number":575,"context_line":"                     body if len(body) \u003c\u003d 60 else body[:57] + \u0027...\u0027,"},{"line_number":576,"context_line":"                     seg_req.path), seg_resp)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"            elif ((seg_etag and (seg_resp.etag !\u003d seg_etag)) or"},{"line_number":579,"context_line":"                    (seg_size and (seg_resp.content_length !\u003d seg_size) and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_5524ed5d","line":576,"updated":"2020-11-14 17:23:18.000000000","message":"maybe the problem is just that HERE we should raise ServerError when the resp is_server_error","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":593,"context_line":"                    {\u0027path\u0027: seg_req.path, \u0027r_etag\u0027: seg_resp.etag,"},{"line_number":594,"context_line":"                     \u0027r_size\u0027: seg_resp.content_length,"},{"line_number":595,"context_line":"                     \u0027s_etag\u0027: seg_etag,"},{"line_number":596,"context_line":"                     \u0027s_size\u0027: seg_size}, seg_resp)"},{"line_number":597,"context_line":"            else:"},{"line_number":598,"context_line":"                self.current_resp \u003d seg_resp"},{"line_number":599,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_15271566","line":596,"updated":"2020-11-14 17:23:18.000000000","message":"so in this case it\u0027s successful; but again we\u0027ve already closed the app_iter","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":630,"context_line":"                        \"%(actual)s\" %"},{"line_number":631,"context_line":"                        {\u0027seg\u0027: seg_req.path, \u0027etag\u0027: seg_resp.etag,"},{"line_number":632,"context_line":"                         \u0027name\u0027: self.name, \u0027actual\u0027: seg_hash.hexdigest()},"},{"line_number":633,"context_line":"                        seg_resp)"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def _byte_counting_iter(self):"},{"line_number":636,"context_line":"        # Checks that we give the client the right number of bytes. Raises"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_f529b936","line":633,"updated":"2020-11-14 17:23:18.000000000","message":"two more success - again already closed","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"}],"test/unit/common/middleware/test_slo.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1135d2ee919a613305670eb570933c77ee15b559","unresolved":false,"context_lines":[{"line_number":3552,"context_line":"    def test_first_segment_not_available(self):"},{"line_number":3553,"context_line":"        self.app.register(\u0027GET\u0027, \u0027/v1/AUTH_test/gettest/not_avail_obj\u0027,"},{"line_number":3554,"context_line":"                          swob.HTTPServiceUnavailable, {}, None)"},{"line_number":3555,"context_line":"        self.app.register(\u0027GET\u0027, \u0027/v1/AUTH_test/gettest/manifest-not-available\u0027,"},{"line_number":3556,"context_line":"                          swob.HTTPOk, {\u0027Content-Type\u0027: \u0027application/json\u0027,"},{"line_number":3557,"context_line":"                                        \u0027X-Static-Large-Object\u0027: \u0027true\u0027},"},{"line_number":3558,"context_line":"                          json.dumps([{\u0027name\u0027: \u0027/gettest/not_avail_obj\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_bca60ec0","line":3555,"updated":"2020-11-13 23:42:03.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"a63f3e6444a0f7fac613e2b0cdef9ea2b699a123"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"614ce147569f4bc9432c2a86f6af347790775e1f","unresolved":false,"context_lines":[{"line_number":3565,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":3566,"context_line":"        status, headers, body \u003d self.call_slo(req)"},{"line_number":3567,"context_line":""},{"line_number":3568,"context_line":"        self.assertEqual(\u0027503 Service Unavailable\u0027, status)"},{"line_number":3569,"context_line":"        self.assertEqual(self.app.unread_requests, {})"},{"line_number":3570,"context_line":"        self.assertEqual(self.slo.logger.get_lines_for_level(\u0027error\u0027), ["},{"line_number":3571,"context_line":"            \u0027While processing manifest /v1/AUTH_test/gettest/\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_7515a9e4","line":3568,"updated":"2020-11-14 17:23:18.000000000","message":"This is a SUPER good test:\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    FAIL: test_first_segment_not_available (test.unit.common.middleware.test_slo.TestSloGetManifest)\n    ----------------------------------------------------------------------\n    Traceback (most recent call last):\n      File \"/home/vagrant/swift/test/unit/common/middleware/test_slo.py\", line 3568, in test_first_segment_not_available\n        self.assertEqual(\u0027503 Service Unavailable\u0027, status)\n    AssertionError: \u0027503 Service Unavailable\u0027 !\u003d \u0027409 Conflict\u0027\n\nquite obvious that 409 is wrong - KUDOS","commit_id":"6e92ba19590ab6981417cdd9d8b5ddb5ae009742"}]}
