interface: xmr.py allow startup with a busy daemon

This commit is contained in:
nahuhh 2024-11-27 04:15:33 +00:00
parent b1b00b5342
commit ad43ce4095

View file

@ -114,7 +114,7 @@ class XMRInterface(CoinInterface):
log_str: str = ""
have_cc_tor_opt = "use_tor" in chain_client_settings
if have_cc_tor_opt and chain_client_settings["use_tor"] is False:
log_str = " bypassing proxy (use_tor false for XMR)"
log_str = f" bypassing proxy (use_tor false for {self.coin_name()})"
elif have_cc_tor_opt is False and is_private_ip_address(rpchost):
log_str = " bypassing proxy (private ip address)"
else:
@ -186,16 +186,19 @@ class XMRInterface(CoinInterface):
self.rpc_wallet("open_wallet", params)
# TODO Remove `refresh` after upstream fix to refresh on open_wallet
self.rpc_wallet("refresh")
except Exception:
self._log.debug(f"Failed to open {self.coin_name()} wallet")
except Exception as e:
if "no connection to daemon" in str(e):
self._log.debug(f"{self.coin_name()} {e}")
return # bypass refresh error to allow startup with a busy daemon
try:
# TODO Remove `store` after upstream fix to autosave on close_wallet
self.rpc_wallet("store")
self.rpc_wallet("close_wallet")
self._log.debug(f"Attempt to save and close {self.coin_name()} wallet")
except Exception as e:
self._log.debug(f"{self.coin_name()}: {e}")
pass
self.rpc_wallet("open_wallet", params)
# TODO Remove `refresh` after upstream fix to refresh on open_wallet
self.rpc_wallet("refresh")