)]}'
{"oslo_db/api.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7b86f94f9c157c138b63cd992fe5b146ec593f04","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            if not isinstance(exc, exception.RetryRequest):"},{"line_number":174,"context_line":"                LOG.debug(\u0027DB error: %s\u0027, exc)"},{"line_number":175,"context_line":"            return True"},{"line_number":176,"context_line":"        return self.exception_checker(exc)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"class DBAPI(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_e17ff3dc","line":176,"updated":"2016-01-11 17:50:23.000000000","message":"_is_exception_expected is only ever used in oslo.db above, this code now has the effect of running self.exception_checker, and throwing away the result. Which seems weird.\n\nSeems like it\u0027s worth just consolidating down the logic.","commit_id":"eb8e798a7c22692a6123dd1cf6429e2fdb84af0b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6f6ddaf8b23e465436cf6a44dec1dbce49427cb4","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            if not isinstance(exc, exception.RetryRequest):"},{"line_number":174,"context_line":"                LOG.debug(\u0027DB error: %s\u0027, exc)"},{"line_number":175,"context_line":"            return True"},{"line_number":176,"context_line":"        return self.exception_checker(exc)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"class DBAPI(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_ffa6ae0d","line":176,"in_reply_to":"fa69d971_e17ff3dc","updated":"2016-01-11 18:14:39.000000000","message":"The result is used to set the reraise flag which is used by the excutils.save_and_reraise_exception context manager.","commit_id":"eb8e798a7c22692a6123dd1cf6429e2fdb84af0b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"64696a93623ca2e707201ff42aa18fe7cb6820b0","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                                    # and not an error condition in"},{"line_number":150,"context_line":"                                    # case retries are not exceeded"},{"line_number":151,"context_line":"                                    LOG.debug(\u0027DB error: %s\u0027, exc)"},{"line_number":152,"context_line":"                                LOG.exception(_LE(\u0027DB error.\u0027))"},{"line_number":153,"context_line":"                        else:"},{"line_number":154,"context_line":"                            LOG.exception(_LE(\u0027DB exceeded retry limit.\u0027))"},{"line_number":155,"context_line":"                            # if it\u0027s a RetryRequest, we need to unpack it"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_61f7ccf5","line":152,"updated":"2016-01-13 16:49:34.000000000","message":"This is still a problem if ectxt.reraise is False, we\u0027ll be tracing expected excpetions on every iteration, which is the bug I was initially fixing in the commit referenced in the commit message.","commit_id":"10f984bf3b42e743cb99af6e7d1c6e4d804258c3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3931cc10a694de77030437aae4566ff81b5992bf","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                                    # and not an error condition in"},{"line_number":150,"context_line":"                                    # case retries are not exceeded"},{"line_number":151,"context_line":"                                    LOG.debug(\u0027DB error: %s\u0027, exc)"},{"line_number":152,"context_line":"                                LOG.exception(_LE(\u0027DB error.\u0027))"},{"line_number":153,"context_line":"                        else:"},{"line_number":154,"context_line":"                            LOG.exception(_LE(\u0027DB exceeded retry limit.\u0027))"},{"line_number":155,"context_line":"                            # if it\u0027s a RetryRequest, we need to unpack it"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_c10478c1","line":152,"in_reply_to":"da6ed579_61f7ccf5","updated":"2016-01-13 16:51:14.000000000","message":"Maybe we should just remove this line since L154 will log the exception after we\u0027ve exhausted our retries.","commit_id":"10f984bf3b42e743cb99af6e7d1c6e4d804258c3"}],"oslo_db/tests/test_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d6125d7a7aaaac6dadbbb13d5528c72e1b63019","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        self.assertFalse(mocked_wrap.called)"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    @mock.patch(\u0027oslo_db.api.LOG.exception\u0027)"},{"line_number":225,"context_line":"    def test_retry_wrapper_non_db_error_not_logged(self, mock_log):"},{"line_number":226,"context_line":"        # Tests that if the retry wrapper hits a non-db error (raised from the"},{"line_number":227,"context_line":"        # wrapped function), then that exception is reraised but not logged."}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_0427feca","line":224,"range":{"start_line":224,"start_character":33,"end_line":224,"end_character":42},"updated":"2016-01-13 17:15:00.000000000","message":"This is probably too specific, should maybe just assert that nothing is called from the logging module, or at least nothing with the AttributeError in it.","commit_id":"abaf9661b6e620f9b99be57d76ec735f8fdd489d"}]}
