From b087d1492b2be00eb92289f21113649b080ebddc Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Mon, 13 Aug 2018 18:48:07 +0900 Subject: [PATCH] Controller tests daemon connectivity and auth first Server base doesn't need a task group --- electrumx/lib/server_base.py | 13 ++++++------- electrumx/server/block_processor.py | 5 +---- electrumx/server/controller.py | 5 ++++- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/electrumx/lib/server_base.py b/electrumx/lib/server_base.py index db7a213..f3688d6 100644 --- a/electrumx/lib/server_base.py +++ b/electrumx/lib/server_base.py @@ -13,7 +13,7 @@ import sys import time from functools import partial -from aiorpcx import TaskGroup +from aiorpcx import spawn from electrumx.lib.util import class_logger @@ -93,12 +93,11 @@ class ServerBase(object): loop.set_exception_handler(self.on_exception) shutdown_event = asyncio.Event() - async with TaskGroup() as group: - server_task = await group.spawn(self.serve(shutdown_event)) - # Wait for shutdown, log on receipt of the event - await shutdown_event.wait() - self.logger.info('shutting down') - server_task.cancel() + server_task = await spawn(self.serve(shutdown_event)) + # Wait for shutdown, log on receipt of the event + await shutdown_event.wait() + self.logger.info('shutting down') + server_task.cancel() # Prevent some silly logs await asyncio.sleep(0.01) diff --git a/electrumx/server/block_processor.py b/electrumx/server/block_processor.py index bea879e..e658fe5 100644 --- a/electrumx/server/block_processor.py +++ b/electrumx/server/block_processor.py @@ -650,10 +650,7 @@ class BlockProcessor(object): could be lost. ''' self._caught_up_event = caught_up_event - async with TaskGroup() as group: - await group.spawn(self._first_open_dbs()) - # Ensure cached_height is set - await group.spawn(self.daemon.height()) + await self._first_open_dbs() try: async with TaskGroup() as group: await group.spawn(self.prefetcher.main_loop(self.height)) diff --git a/electrumx/server/controller.py b/electrumx/server/controller.py index 6588ea9..09d022b 100644 --- a/electrumx/server/controller.py +++ b/electrumx/server/controller.py @@ -112,10 +112,13 @@ class Controller(ServerBase): session_mgr = SessionManager(env, db, bp, daemon, mempool, notifications, shutdown_event) + # Test daemon authentication, and also ensure it has a cached + # height. Do this before entering the task group. + await daemon.height() + caught_up_event = Event() serve_externally_event = Event() synchronized_event = Event() - async with TaskGroup() as group: await group.spawn(session_mgr.serve(serve_externally_event)) await group.spawn(bp.fetch_and_process_blocks(caught_up_event))