cryptoadvance / specter-desktop

A desktop GUI for Bitcoin Core optimised to work with hardware wallets
MIT License
789 stars 236 forks source link

Timezone change to any other but US/Central results in failure #2410

Open tukac opened 5 months ago

tukac commented 5 months ago

Specter 1.14.1 running on amd64 debian 12, within myNode.

If timezone is changed to any other than US/Central, Specter fails to start.

Example:

sudo timedatectl set-timezone America/New_York

Error log:

Jan 17 12:26:59 mynode systemd[1]: specter.service: Failed with result 'exit-code'. Jan 17 12:26:59 mynode systemd[1]: specter.service: Main process exited, code=exited, status=1/FAILURE Jan 17 12:26:59 mynode specter[53228]: tzlocal.utils.ZoneInfoNotFoundError: 'Multiple conflicting time zone configurations found:\n/etc/timezone: US/Central\n/etc/localtime is a symlink to: America/New_York\nFix the configuration, or set the time zone in a TZ environment variable.\n' Jan 17 12:26:59 mynode specter[53228]: raise utils.ZoneInfoNotFoundError(message) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/tzlocal/unix.py", line 144, in _get_localzone_name Jan 17 12:26:59 mynode specter[53228]: tzname = _get_localzone_name(_root) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/tzlocal/unix.py", line 165, in _get_localzone Jan 17 12:26:59 mynode specter[53228]: _cache_tz = _get_localzone() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/tzlocal/unix.py", line 203, in get_localzone Jan 17 12:26:59 mynode specter[53228]: self.timezone = astimezone(config.pop('timezone', None)) or get_localzone() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/apscheduler/schedulers/base.py", line 701, in _configure Jan 17 12:26:59 mynode specter[53228]: super(BackgroundScheduler, self)._configure(config) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/apscheduler/schedulers/background.py", line 29, in _configure Jan 17 12:26:59 mynode specter[53228]: self._configure(config) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/apscheduler/schedulers/base.py", line 131, in configure Jan 17 12:26:59 mynode specter[53228]: self.configure(gconfig, options) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/apscheduler/schedulers/base.py", line 87, in init Jan 17 12:26:59 mynode specter[53228]: self._scheduler = scheduler or BackgroundScheduler() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/flask_apscheduler/scheduler.py", line 38, in init Jan 17 12:26:59 mynode specter[53228]: scheduler = APScheduler() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/server.py", line 267, in init_app Jan 17 12:26:59 mynode specter[53228]: init_app(app, hwibridge=hwibridge) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/cli/cli_server.py", line 126, in server Jan 17 12:26:59 mynode specter[53228]: return __callback(args, kwargs) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/click/core.py", line 760, in invoke Jan 17 12:26:59 mynode specter[53228]: return ctx.invoke(self.callback, ctx.params) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/click/core.py", line 1404, in invoke Jan 17 12:26:59 mynode specter[53228]: return _process_result(sub_ctx.command.invoke(sub_ctx)) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/click/core.py", line 1657, in invoke Jan 17 12:26:59 mynode specter[53228]: rv = self.invoke(ctx) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/click/core.py", line 1055, in main Jan 17 12:26:59 mynode specter[53228]: return self.main(args, kwargs) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/click/core.py", line 1130, in call Jan 17 12:26:59 mynode specter[53228]: entry_point() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/main.py", line 7, in Jan 17 12:26:59 mynode specter[53228]: exec(code, run_globals) Jan 17 12:26:59 mynode specter[53228]: File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code Jan 17 12:26:59 mynode specter[53228]: return _run_code(code, main_globals, None, Jan 17 12:26:59 mynode specter[53228]: File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main Jan 17 12:26:59 mynode specter[53228]: Traceback (most recent call last): Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,567] INFO in server: Initializing REST ... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] INFO in server: Initializing Controller ... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] INFO in server: Login disabled Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] INFO in server: Executing callback specter_added_to_flask_app ... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] WARNING in jade: Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] WARNING in jade: Draining interface... Jan 17 12:26:59 mynode specter[53228]: message = cbor.load(self) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/devices/hwi/jadepy/jade.py", line 644, in read_cbor_message Jan 17 12:26:59 mynode specter[53228]: return self.read_cbor_message() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/devices/hwi/jadepy/jade.py", line 675, in read_response Jan 17 12:26:59 mynode specter[53228]: reply = self.read_response(long_timeout) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/devices/hwi/jadepy/jade.py", line 695, in make_rpc_call Jan 17 12:26:59 mynode specter[53228]: reply = self.jade.make_rpc_call(request, long_timeout) Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/devices/hwi/jadepy/jade.py", line 153, in _jadeRpc Jan 17 12:26:59 mynode specter[53228]: return self._jadeRpc("get_version_info") Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/devices/hwi/jadepy/jade.py", line 182, in get_version_info Jan 17 12:26:59 mynode specter[53228]: verinfo = jade.get_version_info() Jan 17 12:26:59 mynode specter[53228]: File "/opt/mynode/specter/env/lib/python3.8/site-packages/cryptoadvance/specter/devices/hwi/jade.py", line 871, in enumerate Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] ERROR in jade: read nothing, apparent EOF Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] ERROR in jade: Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,527] ERROR in jade: Exception causing JadeAPI context exit. Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in wallet_manager: loaded_wallets: 0 Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in wallet_manager: failed_load_wallets: [] Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in wallet_manager: Updating wallet manager done. Result: Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in checker: Checker executed within 0.008 seconds. This message won't show again until stopped and started. Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in wallet_manager: Started updating wallets with 0 wallets Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in wallet_manager: Using threads in updating the wallet manager. Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,517] INFO in wallet_manager: Iterating over 0 wallet files Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] INFO in hwi_rpc: Initializing HWI... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] INFO in specter: Instantiate ServiceUnencryptedStorageManager Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] INFO in specter: Instantiate ServiceEncryptedStorageManager Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] INFO in checker: Checker price Checking every 600 seconds now Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] INFO in checker: Checker health started with period 600 Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] INFO in checker: Checker health Checking every 600 seconds now Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,509] DEBUG in log: GETCONF __owningcontrollerprocess (runtime: 0.0001) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,507] INFO in wallet_manager: loaded_wallets: 0 Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,506] INFO in wallet_manager: failed_load_wallets: [] Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,506] INFO in wallet_manager: Updating wallet manager done. Result: Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,506] INFO in wallet_manager: Started updating wallets with 0 wallets Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,506] INFO in wallet_manager: Using threads in updating the wallet manager. Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,505] INFO in wallet_manager: Iterating over 0 wallet files Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,500] INFO in node_manager: Loaded Node Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,495] INFO in specter: Instantiate NodeManager with node alias: default. Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,493] INFO in specter: Instantiate ConfigManager Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,492] INFO in specter: Instantiate VersionChecker Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,492] INFO in service_manager: ----> finished service loading Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,492] INFO in service_manager: Service DevhelpService not activated due to devstatus ( prod > alpha ) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,492] INFO in service_manager: Service ElectrumService activated (prod) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,492] INFO in reflection: Found class Electrum Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,491] INFO in service_manager: Mounted to /svc/electrum Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,490] INFO in service_manager: Loading Controller cryptoadvance.specterext.electrum.controller Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,490] WARNING in service_manager: Service electrum does not have a service Configuration! Skipping! Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,490] INFO in service_manager: Loading Service ElectrumService from cryptoadvance.specterext.electrum.service Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,490] INFO in service_manager: Service SwanService activated (prod) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,490] INFO in service_manager: Mounted to /svc/swan Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,486] INFO in service_manager: Loading Controller cryptoadvance.specterext.swan.controller Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,486] INFO in service_manager: Loading Service-specific configuration from Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,486] INFO in service_manager: Loading Service SwanService from cryptoadvance.specterext.swan.service Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,486] INFO in service_manager: Service FaucetService not activated due to devstatus ( prod > beta ) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,486] INFO in service_manager: Service ExfundService activated (prod) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,486] INFO in service_manager: Mounted to /ext/exfund Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,484] INFO in service_manager: Loading Controller cryptoadvance.specterext.exfund.controller Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,484] INFO in service_manager: Loading Service-specific configuration from Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,484] INFO in service_manager: Loading Service ExfundService from cryptoadvance.specterext.exfund.service Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,484] INFO in service_manager: Service LiquidissuerService activated (prod) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,484] INFO in service_manager: Mounted to /svc/liquidissuer Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,466] INFO in service_manager: Loading Controller cryptoadvance.specterext.liquidissuer.controller Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,466] INFO in service_manager: Loading Service-specific configuration from Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,466] INFO in service_manager: Loading Service LiquidissuerService from cryptoadvance.specterext.liquidissuer.service Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,466] INFO in service_manager: Service SpectrumService not activated due to devstatus ( prod > alpha ) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,466] INFO in service_manager: ----> starting service loading Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,466] INFO in service_manager: ----> skipping service discovery dynamic Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,465] INFO in reflection: Found class SpectrumService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,342] INFO in reflection: Found class ElectrumService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,342] INFO in reflection: Found class FaucetService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,342] INFO in reflection: Found class ExfundService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,342] INFO in reflection: Found class DevhelpService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,341] INFO in reflection: Found class LiquidissuerService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,340] INFO in reflection: Found class SwanService Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in service_manager: ----> starting service discovery Static Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in server: Initializing Specter with data-folder /home/bitcoin/.specter Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in server: Initializing LoginManager Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in specter_migrator: No Migrations to execute! Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in specter_migrator: Collecting possible migrations ... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in specter_migrator: Collecting possible migrations ... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,339] INFO in specter_migrator: Collecting possible migrations ... Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,338] INFO in specter_migrator: Initiated MigDataManager(/home/bitcoin/.specter/migration_data.json events:2 execs:3 ) Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,336] INFO in cli_server: CERT:/mnt/hdd/mynode/settings/specter/myNode.local.crt Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,336] INFO in server: SPECTER_DATA_FOLDER: /home/bitcoin/.specter Jan 17 12:26:59 mynode specter[53228]: [2024-01-17 19:26:59,335] INFO in server: Configuration: cryptoadvance.specter.config.ProductionConfig Jan 17 12:26:58 mynode systemd[1]: Started specter.service - Specter. Jan 17 12:26:58 mynode specter[53195]: + '[' '!' -f /mnt/hdd/mynode/specter/config.json ']' Jan 17 12:26:58 mynode specter[53215]: Linux mynode 6.1.0-16-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.67-1 (2023-12-12) x86_64 GNU/Linux Jan 17 12:26:58 mynode specter[53198]: /usr/share/mynode/mynode_device_info.sh: line 18: /proc/device-tree/model: No such file or directory Jan 17 12:26:58 mynode specter[53186]: + exit 0 Jan 17 12:26:58 mynode specter[53186]: Certificate already exists. Jan 17 12:26:58 mynode specter[53186]: + echo 'Certificate already exists.' Jan 17 12:26:58 mynode specter[53186]: + '[' '!' -f /mnt/hdd/mynode/settings/specter/myNode.local.pem ']' Jan 17 12:26:58 mynode specter[53186]: + '[' -f /home/bitcoin/.mynode/specter/myNode.local.pem ']' Jan 17 12:26:58 mynode specter[53186]: + '[' '!' -f /home/bitcoin/.mynode/specter/myNode.local.pem ']' Jan 17 12:26:58 mynode specter[53186]: + '[' -f /var/lib/tor/mynode/hostname ']' Jan 17 12:26:58 mynode specter[53186]: + TOR=electrstor.onion Jan 17 12:26:58 mynode specter[53186]: + LOCAL_IP_ADDR=192.168.0.101 Jan 17 12:26:58 mynode specter[53194]: ++ cut '-d ' -f1 Jan 17 12:26:58 mynode specter[53193]: ++ head -n 1 Jan 17 12:26:58 mynode specter[53192]: ++ hostname -I Jan 17 12:26:58 mynode specter[53186]: + commonname=myNode.local Jan 17 12:26:58 mynode specter[53186]: + domain=myNode.local Jan 17 12:26:58 mynode specter[53186]: + mkdir -p /mnt/hdd/mynode/settings/specter Jan 17 12:26:58 mynode specter[53186]: + mkdir -p /home/bitcoin/.mynode/specter Jan 17 12:26:58 mynode specter[53186]: + DAYS=825 Jan 17 12:26:58 mynode specter[53186]: + '[' '!' -z 825 ']' Jan 17 12:26:58 mynode specter[53186]: + DAYS=99999 Jan 17 12:26:58 mynode specter[53186]: + HDD_DIR=/mnt/hdd/mynode/settings/specter Jan 17 12:26:58 mynode specter[53186]: + OUTPUT_DIR=/home/bitcoin/.mynode/specter Jan 17 12:26:58 mynode specter[53186]: + '[' -z specter ']' Jan 17 12:26:58 mynode specter[53186]: + HDD_DIR=UNKNOWN Jan 17 12:26:58 mynode specter[53186]: + OUTPUT_DIR=UNKNOWN Jan 17 12:26:58 mynode specter[53186]: + mkdir -p /mnt/hdd/mynode/settings Jan 17 12:26:58 mynode specter[53186]: + mkdir -p /home/bitcoin/.mynode Jan 17 12:26:58 mynode specter[53186]: + HDD_DIR_BASE=/mnt/hdd/mynode/settings

Same error results if timezone is changed by removing old simlink and creating new one:

sudo rm -rf /etc/localtime
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

Changing back to US/Central resolves the issue.