cryptoadvance / specter-desktop

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

Upgrade Install on Windows 10 Error Overwiting Executable and Startup Hang #1583

Open dtrammell opened 2 years ago

dtrammell commented 2 years ago

When upgrading on Windows 10, Specter attempts to rename (move) a binary executable 'specterd.exe' from the 'specterd-binaries/specterd-dir' directory to the 'specterd-binaries' directory, overwriting the executable that is already there. This fails with 'Error: EPERM: operation not permitted' when installed as either a regular user or as Administrator.

Logs: 2022-02-14T20:55:57.089Z [info] : Framework Ready! Starting tray Icon ... 2022-02-14T20:55:57.125Z [info] : Framework Ready! Initializing Main-Window, populating Menu ... 2022-02-14T20:55:57.263Z [info] : Updating C:\Users\USER.specter\app_settings.json : {"mode":"specterd","specterURL":"http://localhost:25441","tor":false,"proxyURL":"socks5://127.0.0.1:9050","specterdVersion":"v1.7.2","specterdHash":"f39688e7f7044e98aae3ad5cab8c58874529d7c8bde8b88a84bb76faa1c68699","specterdCLIArgs":"","versionInitialized":"v1.7.2"} 2022-02-14T20:55:57.567Z [info] : Using version 2022-02-14T20:55:57.567Z [info] : https://github.com/cryptoadvance/specter-desktop/releases/download/v1.8.1/specterd-v1.8.1-win64.zip 2022-02-14T20:55:58.191Z [info] : content-type: 2022-02-14T20:55:58.191Z [info] : content-length: 2022-02-14T20:56:00.559Z [error] : Error: EPERM: operation not permitted, rename 'C:\Users\USER.specter\specterd-binaries/specterd-dir/specterd.exe' -> 'C:\Users\USER.specter\specterd-binaries/specterd.exe' 2022-02-14T20:56:00.560Z [error] : Error: Script failed to execute, this normally means an error was thrown. Check the renderer console for the error.

If I remove the target executable prior to installation, then this rename (move) operation completes successfully, however then I end up with different errors:

Logs: 2022-02-14T20:59:48.397Z [info] : Framework Ready! Starting tray Icon ... 2022-02-14T20:59:48.413Z [info] : Framework Ready! Initializing Main-Window, populating Menu ... 2022-02-14T20:59:48.547Z [info] : Using version 2022-02-14T20:59:48.547Z [info] : https://github.com/cryptoadvance/specter-desktop/releases/download/v1.8.1/specterd-v1.8.1-win64.zip 2022-02-14T20:59:48.962Z [info] : content-type: 2022-02-14T20:59:48.962Z [info] : content-length: 2022-02-14T20:59:51.382Z [info] : Starting specterd C:\Users\USER.specter\specterd-binaries/specterd.exe server,--no-filelog 2022-02-14T21:00:10.936Z [info] : stderr-SPECTERD: INFO in server: Configuration: cryptoadvance.specter.config.ProductionConfig 2022-02-14T21:00:10.937Z [info] : stderr-SPECTERD: INFO in specter_migrator: Initiated MigDataManager(C:\Users\USER/.specter\migration_data.json events:1 execs:0 ) SPECTERD: INFO in specter_migrator: A new version has been started compared to last time: v1.8.1 2022-02-14T21:00:10.943Z [info] : stderr-SPECTERD: INFO in specter_migrator: No Migrations to execute! SPECTERD: INFO in server: Initializing LoginManager SPECTERD: INFO in server: Initializing Specter 2022-02-14T21:00:10.945Z [info] : stderr-SPECTERD: ERROR in version: name 'self' is not defined Traceback (most recent call last): File "cryptoadvance\specter\util\version.py", line 148, in _get_latest_version_from_github NameError: name 'self' is not defined 2022-02-14T21:00:10.945Z [info] : stderr-SPECTERD: INFO in version: version checked. upgrade: False

This results in Specter hanging at the "Launching Specter Desktop..." startup message.

OS Information: Edition Windows 10 Pro Version 20H2 Installed on ‎3/‎7/‎2021 OS build 19042.1348 Experience Windows Feature Experience Pack 120.2212.3920.0

dtrammell commented 2 years ago

I found a few stale specter processes (named after the binary that I moved out of the way to specterd.exe.old) in the task list. After killing those, Specter launches as normal without hanging. I suspect the hang may be due to a resource lock on something the new process is attempting to access that the stale process still has control of, but that's just speculation.

frennkie commented 2 years ago

I ran into the same issue. Killing the stale specterd.exe helped.