1
0

network.switch_to_interface: catch 'task group terminated'

closes https://github.com/spesmilo/electrum/issues/7677
see https://github.com/spesmilo/electrum/issues/7677#issuecomment-1065170369
This commit is contained in:
SomberNight
2022-03-11 15:39:03 +01:00
parent 67c386c39a
commit d7c02c4f7f

View File

@@ -712,7 +712,14 @@ class Network(Logger, NetworkRetryManager[ServerAddr]):
self.logger.info(f"switching to {server}")
blockchain_updated = i.blockchain != self.blockchain()
self.interface = i
await i.taskgroup.spawn(self._request_server_info(i))
try:
await i.taskgroup.spawn(self._request_server_info(i))
except RuntimeError as e: # see #7677
if len(e.args) >= 1 and e.args[0] == 'task group terminated':
self.logger.warning(f"tried to switch to {server} but interface.taskgroup is already dead.")
self.interface = None
return
raise
util.trigger_callback('default_server_changed')
self.default_server_changed_event.set()
self.default_server_changed_event.clear()