Browse Source

util: add some logging to NetworkJobOnDefaultServer starting/stopping

to help debug claims of Synchronizer maybe getting stuck
master
SomberNight 3 years ago
parent
commit
7f52415807
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 15
      electrum/util.py

15
electrum/util.py

@ -1565,8 +1565,20 @@ class NetworkJobOnDefaultServer(Logger, ABC):
self.reset_request_counters() self.reset_request_counters()
async def _start(self, interface: 'Interface'): async def _start(self, interface: 'Interface'):
self.logger.debug(f"starting. interface.server={repr(str(interface.server))}")
self.interface = interface self.interface = interface
await interface.taskgroup.spawn(self._run_tasks(taskgroup=self.taskgroup))
taskgroup = self.taskgroup
async def run_tasks_wrapper():
self.logger.debug(f"starting taskgroup ({hex(id(taskgroup))}).")
try:
await self._run_tasks(taskgroup=taskgroup)
except Exception as e:
self.logger.error(f"taskgroup died ({hex(id(taskgroup))}). exc={e!r}")
raise
finally:
self.logger.debug(f"taskgroup stopped ({hex(id(taskgroup))}).")
await interface.taskgroup.spawn(run_tasks_wrapper)
@abstractmethod @abstractmethod
async def _run_tasks(self, *, taskgroup: OldTaskGroup) -> None: async def _run_tasks(self, *, taskgroup: OldTaskGroup) -> None:
@ -1579,6 +1591,7 @@ class NetworkJobOnDefaultServer(Logger, ABC):
raise asyncio.CancelledError() raise asyncio.CancelledError()
async def stop(self, *, full_shutdown: bool = True): async def stop(self, *, full_shutdown: bool = True):
self.logger.debug(f"stopping. {full_shutdown=}")
if full_shutdown: if full_shutdown:
unregister_callback(self._restart) unregister_callback(self._restart)
await self.taskgroup.cancel_remaining() await self.taskgroup.cancel_remaining()

Loading…
Cancel
Save