SQL Server Problems Caused by Microsoft's July Windows Patches
An announcement last week by Microsoft's Customer Service and Support team indicated that Windows patches from Microsoft's July 10 "update Tuesday" release may have caused SQL Server failures after reboot.
The team described the July 10 Windows patches as causing a software "regression." A software regression is a software patch that stops things from working, according to Wikipedia's definition.
Organizations experiencing this flaw or regression may get a "TCP port is already in use" error message when they try restarting SQL Server, which will fail to work. Another associated problem is that Availability Group listeners won't come online "during failover events for both planned and/or unexpected failovers," according Microsoft's announcement.
The error message, "TCP port is already in use," can also occur for other reasons. Microsoft described them in this blog post.
These regressions affecting SQL Server were delivered in the July 10 patches to Windows 7, Windows 8.1 and various Windows 10 versions (1803, 1709, 1703 and 1607). Also affected were Windows Server 2008 R2, Windows Server 2012 R2 and Windows Server 2016 (build 14393.2367).
Microsoft released hotfixes to the July 10 Windows patches about a week later. They were released on July 16 for Windows 10 and Windows Server 2016, and on July 18 for the other operating systems. Microsoft's announcement helpfully includes a list of Knowledge Base articles associated with the flawed releases alongside the articles that contain descriptions of the fixes.
Microsoft's Customer Service and Support Team offered some assurance that these newer released Windows software updates will fix the SQL Server problems, saying that "we have had multiple customers already confirm that these hotfixes have resolved issues related to this regression."
The updated patches sometimes can be preview patches. Here's how Microsoft described that phenomenon:
For example, if your system has KB4338815, you can install either KB4338831 or KB4345424 to fix the regression. The difference between the two is that KB4345424 provides only the fix for the regression, whereas KB4338831 includes all of the fixes from KB4338815 as well as some additional quality improvements as a preview of the next Monthly Rollup update (which includes the fix for the regression).
Microsoft's July 10 Windows patches were problematic in other respects. They adversely affected some users of Exchange Server, Lync Server 2013 and Skype for Business Server 2015. In those cases, Microsoft had recommended removing the July 10 Windows updates and then using Windows Update or Windows Server Update Services to reapply the fixed patches.
The bad July 10 patches also had affected .NET Framework, causing applications to not start or run properly. Fixes for .NET Framework were still being worked on at press time. Microsoft had indicated that it would update its blog post or its microsoft/dotnet #811 GitHub discussion section when the fixes were available, but there was no notice of an update on Friday.
Kurt Mackie is senior news producer for the 1105 Enterprise Computing Group.