mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-31 01:11:35 +00:00
disconnect from servers on exception
This commit is contained in:
parent
3f0d79f07d
commit
14a032a0b1
2 changed files with 12 additions and 8 deletions
|
@ -244,6 +244,8 @@ class BlockHeaderInterface(PrintError):
|
|||
could_connect, num_headers = await self.conn.request_chunk(self.height, next_height)
|
||||
self.tip = max(self.height + num_headers, self.tip)
|
||||
if not could_connect:
|
||||
if self.height <= self.iface.network.max_checkpoint():
|
||||
raise Exception('server chain conflicts with checkpoints or genesis')
|
||||
last = await self.step()
|
||||
self.tip = max(self.height, self.tip)
|
||||
continue
|
||||
|
|
|
@ -809,14 +809,16 @@ class Network(PrintError):
|
|||
asyncio.get_event_loop().create_task(self.new_interface(server))
|
||||
remove = []
|
||||
for k, i in self.interfaces.items():
|
||||
if i.fut.done():
|
||||
if i.exception:
|
||||
try:
|
||||
raise i.exception
|
||||
except BaseException as e:
|
||||
self.print_error(i.server, "errored because", str(e), str(type(e)))
|
||||
else:
|
||||
assert False, "interface future should not finish without exception"
|
||||
if i.fut.done() and not i.exception:
|
||||
assert False, "interface future should not finish without exception"
|
||||
if i.exception:
|
||||
if not i.fut.done():
|
||||
try: i.fut.cancel()
|
||||
except Exception as e: self.print_error('exception while cancelling fut', e)
|
||||
try:
|
||||
raise i.exception
|
||||
except BaseException as e:
|
||||
self.print_error(i.server, "errored because", str(e), str(type(e)))
|
||||
remove.append(k)
|
||||
changed = False
|
||||
for k in remove:
|
||||
|
|
Loading…
Add table
Reference in a new issue