)]}'
{"oslo_utils/excutils.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"130f16a68645e632d3cb7a5405716febdbab246d","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            six.reraise(self.type_, self.value, self.tb)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"def forever_retry_uncaught_exceptions(infunc):"},{"line_number":200,"context_line":"    def inner_func(*args, **kwargs):"},{"line_number":201,"context_line":"        last_exc_message \u003d None"},{"line_number":202,"context_line":"        same_failure_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_85d8fc80","line":199,"updated":"2015-10-03 09:28:51.000000000","message":"This sounds like something we could write in a few lines with retrying, no?","commit_id":"199f3012001496d0a358c58b39d9fdd4a52dac93"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"fc071238c6867927797116a222c9963a617f7b9b","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            six.reraise(self.type_, self.value, self.tb)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"def forever_retry_uncaught_exceptions(infunc):"},{"line_number":200,"context_line":"    def inner_func(*args, **kwargs):"},{"line_number":201,"context_line":"        last_exc_message \u003d None"},{"line_number":202,"context_line":"        same_failure_count \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_0b295b89","line":199,"in_reply_to":"9a1a9d01_85d8fc80","updated":"2015-10-03 14:36:59.000000000","message":"Possibly, there\u0027s a few places we need to/could rewrite things to use retrying imho.\n\nThis one has other issues (why did it pick 1 second without making it configurable/via a keyword argument for example).","commit_id":"199f3012001496d0a358c58b39d9fdd4a52dac93"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"206fc11777aca1980c300bd3bc069554524e7936","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                if this_exc_message \u003d\u003d last_exc_message:"},{"line_number":210,"context_line":"                    same_failure_count +\u003d 1"},{"line_number":211,"context_line":"                else:"},{"line_number":212,"context_line":"                    same_failure_count \u003d 1"},{"line_number":213,"context_line":"                if this_exc_message !\u003d last_exc_message or watch.expired():"},{"line_number":214,"context_line":"                    # The watch has expired or the exception message"},{"line_number":215,"context_line":"                    # changed, so time to log it again..."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_fefdd06e","line":212,"updated":"2015-10-02 20:56:23.000000000","message":"What is the purpose of setting same_failure_count to 1 here? If it\u0027s in here, it\u0027s going to enter the next conditional and be set to 0 on line 223.","commit_id":"199f3012001496d0a358c58b39d9fdd4a52dac93"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"016645ecf7f0819ac6928b9640470c1765149614","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                if this_exc_message \u003d\u003d last_exc_message:"},{"line_number":210,"context_line":"                    same_failure_count +\u003d 1"},{"line_number":211,"context_line":"                else:"},{"line_number":212,"context_line":"                    same_failure_count \u003d 1"},{"line_number":213,"context_line":"                if this_exc_message !\u003d last_exc_message or watch.expired():"},{"line_number":214,"context_line":"                    # The watch has expired or the exception message"},{"line_number":215,"context_line":"                    # changed, so time to log it again..."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_9e729410","line":212,"in_reply_to":"9a1a9d01_3e7908fd","updated":"2015-10-02 20:59:51.000000000","message":"The reason this isn\u0027t a noop is because this number gets logged on line 217 before being set to 0.","commit_id":"199f3012001496d0a358c58b39d9fdd4a52dac93"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"8c1a39d31dacccbeeec5fdaf97260928c6e5b6d6","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                if this_exc_message \u003d\u003d last_exc_message:"},{"line_number":210,"context_line":"                    same_failure_count +\u003d 1"},{"line_number":211,"context_line":"                else:"},{"line_number":212,"context_line":"                    same_failure_count \u003d 1"},{"line_number":213,"context_line":"                if this_exc_message !\u003d last_exc_message or watch.expired():"},{"line_number":214,"context_line":"                    # The watch has expired or the exception message"},{"line_number":215,"context_line":"                    # changed, so time to log it again..."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_2de0fcf9","line":212,"in_reply_to":"9a1a9d01_9e729410","updated":"2015-10-03 00:27:05.000000000","message":"Sounds about right.","commit_id":"199f3012001496d0a358c58b39d9fdd4a52dac93"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"b853b278664262b4964797bd56f8d10742b03f06","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                if this_exc_message \u003d\u003d last_exc_message:"},{"line_number":210,"context_line":"                    same_failure_count +\u003d 1"},{"line_number":211,"context_line":"                else:"},{"line_number":212,"context_line":"                    same_failure_count \u003d 1"},{"line_number":213,"context_line":"                if this_exc_message !\u003d last_exc_message or watch.expired():"},{"line_number":214,"context_line":"                    # The watch has expired or the exception message"},{"line_number":215,"context_line":"                    # changed, so time to log it again..."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a1a9d01_3e7908fd","line":212,"in_reply_to":"9a1a9d01_fefdd06e","updated":"2015-10-02 20:58:40.000000000","message":"Done","commit_id":"199f3012001496d0a358c58b39d9fdd4a52dac93"}]}
