chocolatey / boxstarter

Repeatable, reboot resilient windows environment installations made easy using Chocolatey packages
https://boxstarter.org/
Apache License 2.0
1.32k stars 162 forks source link

Install-BoxstarterPackage gives incorrect result when host-reboot is pending and Wait-ForSessionToClose times out #583

Open mwallner opened 2 hours ago

mwallner commented 2 hours ago

Checklist

What You Are Seeing?

When installing a package remotely via Boxstarter and a reboot is triggered,- it will not wait for the reboot if the target host doesn't reboot within 2 minutes. After the timeout of 120 seconds (see https://github.com/chocolatey/boxstarter/blob/cd6f1f57743acb49c9b1165a434bae4e49fdfd4e/Boxstarter.Chocolatey/Install-BoxstarterPackage.ps1#L814) it will silently assume that the host has disconnect and try to reconnect. The reconnect will succeed to a host that is still waiting for the reboot to happen. (i.e. when the reboot is being delayed by a locked file, windows update, volume defrag etc.) Boxstarter will start the installation which will most likely fail due to the host rebooting at some point.

What is Expected?

When hitting a timeout during installation, the process should not continue without error/corresponding logging. => the timeout for reconnecting to a host should be a configurable setting (when dealing with certain environments where we cannot guarantee a reboot will be carried out in timely manner)

How Did You Get This To Happen?

Install any Boxstarter package on a target host that has a CBS reboot pending and won't restart within 2 minutes. (i.e. because a volume-defrag is running)

System Details

Installed Packages

-

Output Log

-

Additional Context

No response

mwallner commented 1 hour ago

Def. need to look at https://learn.microsoft.com/de-de/powershell/module/microsoft.powershell.core/about/about_remote_disconnected_sessions?view=powershell-5.1 => check if SessionState / "opened" will be updated on every possible disconnect

mwallner commented 46 minutes ago

might relate to #487