)]}'
{"swift/common/memcached.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3098ae20657bf75242db95e3f51fd8ef83a2c453","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            # next to become available and make available immediately"},{"line_number":238,"context_line":"            s \u003d sorted(self._error_limited.items(), key\u003dlambda item: item[1])"},{"line_number":239,"context_line":"            for i in range(0, self._minimum_servers):"},{"line_number":240,"context_line":"                server, unlimit_time \u003d s[i]"},{"line_number":241,"context_line":"                if unlimit_time \u003e now:"},{"line_number":242,"context_line":"                    self._error_limited[server] \u003d now"},{"line_number":243,"context_line":"                    self.logger.debug("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_cd47834b","line":240,"updated":"2020-10-23 18:35:15.000000000","message":"nit: can just do\n\n for server, unlimit_time in s[:self._minimum_servers]:","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2953d186834b43a52a14e01e76fe69239c41e22f","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            # next to become available and make available immediately"},{"line_number":238,"context_line":"            s \u003d sorted(self._error_limited.items(), key\u003dlambda item: item[1])"},{"line_number":239,"context_line":"            for i in range(0, self._minimum_servers):"},{"line_number":240,"context_line":"                server, unlimit_time \u003d s[i]"},{"line_number":241,"context_line":"                if unlimit_time \u003e now:"},{"line_number":242,"context_line":"                    self._error_limited[server] \u003d now"},{"line_number":243,"context_line":"                    self.logger.debug("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_a0ffa1a8","line":240,"in_reply_to":"3f65232a_cd47834b","updated":"2020-10-26 12:28:04.000000000","message":"Done","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3098ae20657bf75242db95e3f51fd8ef83a2c453","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            for i in range(0, self._minimum_servers):"},{"line_number":240,"context_line":"                server, unlimit_time \u003d s[i]"},{"line_number":241,"context_line":"                if unlimit_time \u003e now:"},{"line_number":242,"context_line":"                    self._error_limited[server] \u003d now"},{"line_number":243,"context_line":"                    self.logger.debug("},{"line_number":244,"context_line":"                        \u0027Prematurely removing error limiting for server %s\u0027,"},{"line_number":245,"context_line":"                        server)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_4d837354","line":242,"updated":"2020-10-23 18:35:15.000000000","message":"The hardcoded\n\n ERROR_LIMIT_TIME \u003d\u003d ERROR_LIMIT_DURATION\n\nhas me wondering whether we ought to clear self._errors[server] here, too... idk","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2953d186834b43a52a14e01e76fe69239c41e22f","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            for i in range(0, self._minimum_servers):"},{"line_number":240,"context_line":"                server, unlimit_time \u003d s[i]"},{"line_number":241,"context_line":"                if unlimit_time \u003e now:"},{"line_number":242,"context_line":"                    self._error_limited[server] \u003d now"},{"line_number":243,"context_line":"                    self.logger.debug("},{"line_number":244,"context_line":"                        \u0027Prematurely removing error limiting for server %s\u0027,"},{"line_number":245,"context_line":"                        server)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_1b5c0624","line":242,"in_reply_to":"3f65232a_4d837354","updated":"2020-10-26 12:28:04.000000000","message":"a good discussion point for PTG","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2953d186834b43a52a14e01e76fe69239c41e22f","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                        \u0027Prematurely removing error limiting for server %s\u0027,"},{"line_number":245,"context_line":"                        server)"},{"line_number":246,"context_line":"                else:"},{"line_number":247,"context_line":"                    break"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _get_conns(self, key):"},{"line_number":250,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_7b409a36","line":247,"updated":"2020-10-26 12:28:04.000000000","message":"no, don\u0027t break, we always want to check that the first minimum_servers are available","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3098ae20657bf75242db95e3f51fd8ef83a2c453","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                    print(\u0027ok server \u0027, server)"},{"line_number":323,"context_line":"                    return"},{"line_number":324,"context_line":"            except (Exception, Timeout) as e:"},{"line_number":325,"context_line":"                print(\u0027bad server \u0027, server)"},{"line_number":326,"context_line":"                self._exception_occurred(server, e, sock\u003dsock, fp\u003dfp)"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def get(self, key):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_ed4a3f53","line":325,"updated":"2020-10-23 18:35:15.000000000","message":"We\u0027ll drop these when squashing, naturally.","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2953d186834b43a52a14e01e76fe69239c41e22f","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                    print(\u0027ok server \u0027, server)"},{"line_number":323,"context_line":"                    return"},{"line_number":324,"context_line":"            except (Exception, Timeout) as e:"},{"line_number":325,"context_line":"                print(\u0027bad server \u0027, server)"},{"line_number":326,"context_line":"                self._exception_occurred(server, e, sock\u003dsock, fp\u003dfp)"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def get(self, key):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_00b815c6","line":325,"in_reply_to":"3f65232a_ed4a3f53","updated":"2020-10-26 12:28:04.000000000","message":":(  was late on a Friday!","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"}],"test/unit/common/test_memcached.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3098ae20657bf75242db95e3f51fd8ef83a2c453","unresolved":false,"context_lines":[{"line_number":558,"context_line":"                \u0027Error limiting server 1.2.3.5:11211\u0027,"},{"line_number":559,"context_line":"                \u0027Error talking to memcached: 1.2.3.4:11211: \u0027"},{"line_number":560,"context_line":"                \u0027[Errno 32] Broken pipe\u0027,"},{"line_number":561,"context_line":"                \u0027Error limiting server 1.2.3.4:11211\u0027"},{"line_number":562,"context_line":"            ])"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"    def test_error_limiting_single_server(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_0da05bf4","line":561,"updated":"2020-10-23 18:35:15.000000000","message":"Hmm... I hadn\u0027t thought about how we still keep the history of errors, so we keep flipping back and forth...\n\nIn practice, of course, we\u0027d hopefully have some meaningful time delta and it wouldn\u0027t be as noticeable of an issue.","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bd2cf589c9282cac276c6000e723628673e4bc7f","unresolved":false,"context_lines":[{"line_number":572,"context_line":"                    [\u00271.2.3.4:11211\u0027], logger\u003dself.logger,"},{"line_number":573,"context_line":"                    minimum_servers\u003drequested_min_servers)"},{"line_number":574,"context_line":"            mock1 \u003d ExplodingMockMemcached()"},{"line_number":575,"context_line":"            memcache_client._client_cache[\u00271.2.3.4:11211\u0027] \u003d MockedMemcachePool("},{"line_number":576,"context_line":"                [(mock1, mock1)] * 3)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"            with mock.patch.object(memcached, \u0027ERROR_LIMIT_COUNT\u0027, 3):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_b0cffa7d","line":575,"updated":"2020-10-23 20:19:24.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bd2cf589c9282cac276c6000e723628673e4bc7f","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                [\u00271.2.3.4:11211\u0027], logger\u003dself.logger,"},{"line_number":597,"context_line":"                minimum_servers\u003drequested_min_servers)"},{"line_number":598,"context_line":"            mock1 \u003d ExplodingMockMemcached()"},{"line_number":599,"context_line":"            memcache_client._client_cache[\u00271.2.3.4:11211\u0027] \u003d MockedMemcachePool("},{"line_number":600,"context_line":"                [(mock1, mock1)] * 5)"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"            with mock.patch.object(memcached, \u0027ERROR_LIMIT_COUNT\u0027, 3):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f65232a_90cc7e8a","line":599,"updated":"2020-10-23 20:19:24.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"50552a7cc9de362ddc77e095db2defcc3d856c6f"}]}
