[ARVADOS] updated: dce9b03c23e89e77e3547a3a92088f332c0f747e
Git user
git at public.curoverse.com
Fri Apr 1 15:35:11 EDT 2016
Summary of changes:
.../arvnodeman/computenode/dispatch/__init__.py | 16 ++++++----------
services/nodemanager/tests/test_computenode_dispatch.py | 10 ++++++++++
2 files changed, 16 insertions(+), 10 deletions(-)
via dce9b03c23e89e77e3547a3a92088f332c0f747e (commit)
from 798b08af218972bf9fb60101b7f85fd71951c6b7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit dce9b03c23e89e77e3547a3a92088f332c0f747e
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Fri Apr 1 15:35:08 2016 -0400
8816: Use is_cloud_exception to determine if exception is a "cloud error". Add
test that exceptions don't crash ComputeNodeUpdateActor.
diff --git a/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py b/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
index 26744c4..2ddfb0a 100644
--- a/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
+++ b/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
@@ -279,17 +279,13 @@ class ComputeNodeUpdateActor(config.actor_class):
self.next_request_time = time.time()
try:
result = orig_func(self, *args, **kwargs)
- except self._cloud.CLOUD_ERRORS as error:
- self.error_streak += 1
- self.next_request_time += min(2 ** self.error_streak,
- self.max_retry_wait)
- self._logger.error(
- "Caught cloud error (no retry): %s",
- error, exc_info=error)
except Exception as error:
- self._logger.error(
- "Caught unknown error (no retry): %s",
- error, exc_info=error)
+ if self._cloud.is_cloud_exception(error):
+ self.error_streak += 1
+ self.next_request_time += min(2 ** self.error_streak,
+ self.max_retry_wait)
+ self._logger.warn(
+ "Unhandled exception: %s", error, exc_info=error)
else:
self.error_streak = 0
return result
diff --git a/services/nodemanager/tests/test_computenode_dispatch.py b/services/nodemanager/tests/test_computenode_dispatch.py
index 95b1329..6613718 100644
--- a/services/nodemanager/tests/test_computenode_dispatch.py
+++ b/services/nodemanager/tests/test_computenode_dispatch.py
@@ -267,6 +267,16 @@ class ComputeNodeUpdateActorTestCase(testutil.ActorTestMixin,
self.updater.sync_node(cloud_node, arv_node).get(self.TIMEOUT)
self.driver().sync_node.assert_called_with(cloud_node, arv_node)
+ @testutil.no_sleep
+ def test_node_sync_error(self):
+ self.make_actor()
+ cloud_node = testutil.cloud_node_mock()
+ arv_node = testutil.arvados_node_mock()
+ self.driver().sync_node.side_effect = (IOError, Exception, True)
+ self.updater.sync_node(cloud_node, arv_node).get(self.TIMEOUT)
+ self.updater.sync_node(cloud_node, arv_node).get(self.TIMEOUT)
+ self.updater.sync_node(cloud_node, arv_node).get(self.TIMEOUT)
+ self.driver().sync_node.assert_called_with(cloud_node, arv_node)
class ComputeNodeMonitorActorTestCase(testutil.ActorTestMixin,
unittest.TestCase):
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list