tailscale/clientupdate
Nick Khyl e7325213a7 clientupdate: fix MSI exit code handling, preserve MSI and updater logs on Windows
In this PR, we update the Windows client updater to:
- Run msiexec with logging enabled and preserve the log file in %ProgramData%\Tailscale\Logs;
- Preserve the updater's own log file in the same location;
- Properly handle ERROR_SUCCESS_REBOOT_REQUIRED, ERROR_SUCCESS_REBOOT_INITIATED, and ERROR_INSTALL_ALREADY_RUNNING exit codes. The first two values indicate that installation
completed successfully and no further retries are needed. The last one means the Windows Installer
service is busy. Retrying immediately is likely to fail and may be risky; it could uninstall the current version
without successfully installing the new one, potentially leaving the user without Tailscale.

Updates tailscale/corp#27496
Updates tailscale#15554

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2025-04-09 15:25:42 -05:00
..
distsign all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
testdata clientupdate: implement update for Unraid (#10344) 2023-11-28 13:28:30 -08:00
clientupdate_downloads.go clientupdate: don't link distsign on platforms that don't download 2024-10-10 06:32:50 -07:00
clientupdate_not_downloads.go clientupdate: don't link distsign on platforms that don't download 2024-10-10 06:32:50 -07:00
clientupdate_notwindows.go clientupdate, ipn/localapi: don't use google/uuid, thin iOS deps 2024-10-09 20:27:35 -07:00
clientupdate_test.go clientupdate: allow switching from unstable to stable tracks (#12477) 2024-06-17 10:23:27 -07:00
clientupdate_windows.go clientupdate: fix MSI exit code handling, preserve MSI and updater logs on Windows 2025-04-09 15:25:42 -05:00
clientupdate.go clientupdate: cache CanAutoUpdate, avoid log spam when false 2025-03-24 09:46:48 -07:00