Merge "expirer: unexpected responses don't warrant tracebacks"

This commit is contained in:
Zuul
2018-01-17 05:30:27 +00:00
committed by Gerrit Code Review
2 changed files with 17 additions and 5 deletions

View File

@@ -272,12 +272,18 @@ class ObjectExpirer(Daemon):
self.pop_queue(container, obj) self.pop_queue(container, obj)
self.report_objects += 1 self.report_objects += 1
self.logger.increment('objects') self.logger.increment('objects')
except UnexpectedResponse as err:
self.logger.increment('errors')
self.logger.error(
'Unexpected response while deleting object %(container)s '
'%(obj)s: %(err)s' % {'container': container, 'obj': obj,
'err': str(err.resp.status_int)})
except (Exception, Timeout) as err: except (Exception, Timeout) as err:
self.logger.increment('errors') self.logger.increment('errors')
self.logger.exception( self.logger.exception(
_('Exception while deleting object %(container)s %(obj)s' 'Exception while deleting object %(container)s %(obj)s'
' %(err)s') % {'container': container, ' %(err)s' % {'container': container,
'obj': obj, 'err': str(err)}) 'obj': obj, 'err': str(err)})
self.logger.timing_since('timing', start_time) self.logger.timing_since('timing', start_time)
self.report() self.report()

View File

@@ -252,8 +252,14 @@ class TestObjectExpirer(TestCase):
self.assertFalse(pop_queue.called) self.assertFalse(pop_queue.called)
self.assertEqual(start_reports, x.report_objects) self.assertEqual(start_reports, x.report_objects)
self.assertEqual(1, len(log_lines)) self.assertEqual(1, len(log_lines))
self.assertIn('Exception while deleting object container obj', if isinstance(exc, internal_client.UnexpectedResponse):
log_lines[0]) self.assertEqual(
log_lines[0],
'Unexpected response while deleting object container '
'obj: %s' % exc.resp.status_int)
else:
self.assertTrue(log_lines[0].startswith(
'Exception while deleting object container obj'))
# verify pop_queue logic on exceptions # verify pop_queue logic on exceptions
for exc, ts, should_pop in [(None, timestamp, True), for exc, ts, should_pop in [(None, timestamp, True),