From dd67b57c30909649ed7ab3901f161b8e27d76ac8 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Fri, 10 Aug 2018 09:52:49 +0900 Subject: [PATCH] Catch and log failures in the main peers task Closes #565 --- electrumx/server/peers.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/electrumx/server/peers.py b/electrumx/server/peers.py index a54d8bb..24e72ec 100644 --- a/electrumx/server/peers.py +++ b/electrumx/server/peers.py @@ -390,9 +390,13 @@ class PeerManager(object): await group.spawn(forever.wait()) await group.spawn(self._detect_proxy()) await group.spawn(self._import_peers()) - # Consume tasks as they complete + # Consume tasks as they complete, logging unexpected failures async for task in group: - task.result() + if not task.cancelled(): + try: + task.result() + except Exception: + self.logger.exception('task failed unexpectedly') def info(self): '''The number of peers.'''