diff --git a/swift/container/sync.py b/swift/container/sync.py index d7152ac9a0..5d99eb4330 100644 --- a/swift/container/sync.py +++ b/swift/container/sync.py @@ -386,6 +386,8 @@ class ContainerSync(Daemon): # the others errored for some other reason. if not exc or exc.http_status == HTTP_NOT_FOUND: exc = err + except (Exception, Timeout), err: + exc = err if timestamp < looking_for_timestamp: if exc: raise exc diff --git a/test/unit/container/test_sync.py b/test/unit/container/test_sync.py index e378840305..4f33081449 100644 --- a/test/unit/container/test_sync.py +++ b/test/unit/container/test_sync.py @@ -739,9 +739,10 @@ class TestContainerSync(unittest.TestCase): 'key', FakeContainerBroker('broker'), {'account': 'a', 'container': 'c'})) self.assertEquals(cs.container_puts, 2) - self.assertEquals(len(exc), 1) + self.assertEquals(len(exc), 3) self.assertEquals(str(exc[-1]), 'test exception') + exc = [] def fake_direct_get_object(node, part, account, container, obj, resp_chunk_size=1): exc.append(ClientException('test client exception')) @@ -754,7 +755,7 @@ class TestContainerSync(unittest.TestCase): 'key', FakeContainerBroker('broker'), {'account': 'a', 'container': 'c'})) self.assertEquals(cs.container_puts, 2) - self.assertEquals(len(exc), 4) + self.assertEquals(len(exc), 3) self.assertEquals(str(exc[-1]), 'test client exception') def fake_direct_get_object(node, part, account, container, obj,