diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-01-20 12:59:57 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-01-20 12:59:57 +0000 |
commit | d8da96ef5a2fa7e72f85942111c08fd4061c8be9 (patch) | |
tree | 9e783e6d0e878c09f8d3a4259a873606234731b9 | |
parent | 3f22d456276ae5d315f3cc9c05953e95ed2b730e (diff) | |
parent | 4f5384dc99ddd30a0670a488c1936be48f2171f3 (diff) | |
download | oslo-db-d8da96ef5a2fa7e72f85942111c08fd4061c8be9.tar.gz |
Merge "Don't log non-db error in retry wrapper"4.3.1
-rw-r--r-- | oslo_db/api.py | 5 | ||||
-rw-r--r-- | oslo_db/tests/test_api.py | 12 |
2 files changed, 12 insertions, 5 deletions
diff --git a/oslo_db/api.py b/oslo_db/api.py index dcba2a3..ea1d41d 100644 --- a/oslo_db/api.py +++ b/oslo_db/api.py @@ -139,11 +139,6 @@ class wrap_db_retry(object): with excutils.save_and_reraise_exception() as ectxt: if remaining > 0: ectxt.reraise = not self._is_exception_expected(e) - if ectxt.reraise: - # We got an unexpected exception so stop - # retrying, log it and raise it up to the - # caller. - LOG.exception(_LE('DB error.')) else: LOG.exception(_LE('DB exceeded retry limit.')) # if it's a RetryRequest, we need to unpack it diff --git a/oslo_db/tests/test_api.py b/oslo_db/tests/test_api.py index 56d5529..d3e9834 100644 --- a/oslo_db/tests/test_api.py +++ b/oslo_db/tests/test_api.py @@ -220,3 +220,15 @@ class DBRetryRequestCase(DBAPITestCase): dbapi.api_class_call1() self.assertFalse(mocked_wrap.called) + + @mock.patch('oslo_db.api.LOG') + def test_retry_wrapper_non_db_error_not_logged(self, mock_log): + # Tests that if the retry wrapper hits a non-db error (raised from the + # wrapped function), then that exception is reraised but not logged. + + @api.wrap_db_retry(max_retries=5, retry_on_deadlock=True) + def some_method(): + raise AttributeError('test') + + self.assertRaises(AttributeError, some_method) + self.assertFalse(mock_log.called) |