The current install_puppet.bat.erb waits 5 seconds, before each attempt to see if the PID of the calling process has exited.
https://github.com/puppetlabs/puppetlabs-puppet_agent/blob/master/templates/install_puppet.bat.erb#L12-L16 loops infinitely, and this should have a timeout.
A couple of options for addressing this:
- Stop waiting after X seconds, don't proceed with installer (and log to event log?)
- Forcefully kill the agent PID using taskkill - now that 3.7 is supported, this might be necessary under some circumstances.
PUP-2987addressed some service hang / deadlock issues in Puppet 3.7, but I don't believe they had yet made it into MCO (this might need to be addressed in a different independent ticket - to expand the scope of agent upgrade to forcefully terminate services that don't shut down gracefully)