During a testing phase of a Lync 2013/Skype for Business 2015 upgrade, I was caught be surprise when the servers restarted at the (final) cumulative update (CU2) phase. Since all the logs are, by default, written on the %TEMP% folder, after the server reboot they are…. gone! 😦
I assume that if someone is just applying the CU1 on a Skype for Business 2015 will have the same experience.
22/May/2016: updated content with the cause and final solution
The cause is that when you execute the Stop-CsWindowsService, the Web Server is stopped but there is a IIS Worker Process that stays in memory (leak issue):
This information can be found on the setup log of the iis rewrite:
“IIS URL Rewrite Module 2. The file C:\Windows\system32\inetsrv\rewrite.dll is being used by the following process: Name: w3wp “
The CU1 (Nov 2015) introduced a new install file (rewrite_2.0_rtw_x64.msi) that it’s a updated version of the ‘IIS URL Rewrite Module 2’. It appears on the SkypeforBusinessUpdater GUI, but it’s not listed on the official list of Updates for Skype for Business Server 2015.
Could not find the reason and why include now this version released on the 1st of May 2015 ? (S4B initial binaries are one month older…)
Fortunally one particular server didn’t restarted, which allowed me to ‘peak’ the installtion logs. It was a quick catch:
* While all updates are executed with parameters REBOOTPROMPT=S REBOOT=ReallySuppress
* The ‘IIS URL Rewrite Module 2’ is executed with REBOOTPROMPT=S IACCEPTEULA=yes
This ‘tiny’ difference make all the difference:
* REBOOTPROMPT=S means that no reboot prompt will be shown to the end user
* REBOOT=ReallySuppress means that even if required a reboot will not be performed.
So the result is that, if the ‘IIS URL Rewrite Module 2’ informs that a reboot is needed to complete the installation (ex: because a file is in use and will be scheduled for the next restart), the Windows installer will automatically reboot the server !!
Fortunally this package is the last of the updates to run, so no other update is skipped, BUT…
… the server is going to restart and, with him, all the Skype for Business services. And you will not like if:
(1) some of the updates were not sucessfully installed, and you find yourself with differente CU components versions causing unexpected service errors on the event viewer.
(2) you are in the middle of a pool upgrade and: you find yourself with a (rebooted) server with the RCT service on ‘pending start’ -because the pool might not have enough quorum-
(3 and the bad one) You are in the middle of a Lync 2013 upgrade and you got now a server already started in S4B. If you are still trying to upgrade other Lync 2013 servers, you will get a warning that a FE pool member server is running, and you need to kill the services.
The other unwanted result is that you will probably lose the log files (kept on the user TEMP directory and deleted at restart) that might help to troubleshoot some issue.
Before you install the CU1 update:
- Stop the S4B services as instructed (powershell command: Stop-CsWindowsServices)
- Execute the command IISRESET /STOP
This will force all IIS dependent components to stop
This way we can run the updates withouth an unexpected server restart.