locked
KB3159706 and how WSUS breaks WSUS RRS feed

  • Question

  • I'm at wit's end here. I've installed KB3159706 on my Server 2012 R2 box for WSUS (no SCCM).  My database is on a separate box on SQL 2014. Everything used to work fine.  After installing KB3159706, I did all the steps in the KB article. In fact, I was one of the people that suggested they include the take ownership step in that article... though they mixed step 1 and 2 up. (Really, take ownership and THEN locate the file?)

    Anyway, after completing the steps, I get a lovely Error:  Unexpected Error when launching the WSUS console. My postinstall takes ABOUT two seconds. The log is:

    2016-07-27 11:20:58  Postinstall started
    2016-07-27 11:20:58  Detected role services: Api, UI, Services
    2016-07-27 11:20:58  Start: LoadSettingsForServicing
    2016-07-27 11:20:58  End: LoadSettingsForServicing
    2016-07-27 11:20:58  Stopping service WSUSService
    2016-07-27 11:20:58  Stopping service W3SVC
    2016-07-27 11:21:00  Starting service W3SVC
    2016-07-27 11:21:00  Starting service WSUSService
    2016-07-27 11:21:00  Postinstall completed
    

    The console Copy Error to Clipboard gives me this, which is pointless:

    The WSUS administration console has encountered an unexpected error. This may be a transient error; try restarting the administration console. If this error persists, 
    
    Try removing the persisted preferences for the console by deleting the wsus file under %appdata%\Microsoft\MMC\.
    
    
    System.IndexOutOfRangeException -- Index was outside the bounds of the array.
    
    Source
    Microsoft.UpdateServices.BaseApi
    
    Stack Trace:
       at Microsoft.UpdateServices.Internal.BaseApi.SoapExceptionProcessor.DeserializeAndThrow(SoapException soapException)
       at Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPGetConfiguration()
       at Microsoft.UpdateServices.Internal.BaseApi.UpdateServerConfiguration.Load()
       at Microsoft.UpdateServices.Internal.ClassFactory.CreateWellKnownType(Type type, Object[] args)
       at Microsoft.UpdateServices.Internal.ClassFactory.CreateInstance(Type type, Object[] args)
       at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.set_UserSelectedCulture(String value)
       at Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools.TrySetServerCulture(String culture)
       at Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools.SetServerCulture()
       at Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools..ctor(CultureInfo culture, IUpdateServer updateServer)
       at Microsoft.UpdateServices.UI.SnapIn.Common.ServerTools..ctor(ServerSummaryScopeNode serverSummaryScopeNode, SnapInTools snapInTools, IUpdateServer updateServer)
       at Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ConnectToServer()
       at Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.get_ServerTools()


    So... I know the only current solution is to uninstall the update.  Does anyone actually have a REAL solution to this?  Thanks.

    Wednesday, July 27, 2016 3:34 PM

Answers

All replies

  • Here is an excerpt from the SoftwareDistribution.log file directly after the update was installed and the server rebooted.  This pattern generically repeats from the time stamp to current.  Index out of bounds never showed up in the log prior.

    2016-07-27 15:11:26.246 UTC	Info	WsusService.6	ThreadEntry	ThreadHelper.ThreadStart
    2016-07-27 15:11:26.324 UTC	Info	WsusService.6	SusService.SusServiceStartUpThreadProc	WSUS Server Version: 6.3.9600.18324
    2016-07-27 15:11:27.402 UTC	Info	WsusService.6	SusService.CleanUpIntermediateFileDownload	CleanupIntermediateFileDownload
    2016-07-27 15:11:28.293 UTC	Error	WsusService.6	ContentSyncAgent..ctor	Failed to initialize content sync agent:
    Index was outside the bounds of the array.
       at Microsoft.UpdateServices.ServerSync.ContentSyncAgent..ctor()
       at Microsoft.UpdateServices.ServerSync.ContentSyncAgent.get_Instance()
       at Microsoft.UpdateServices.EventSystem.SusService.SusServiceStartUpThreadProc()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
    2016-07-27 15:11:28.308 UTC	Error	WsusService.6	SusService.SusServiceStartUpThreadProc	WUS Service failed during startup processing, sleeping before retry - Error Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.
       at Microsoft.UpdateServices.Internal.DatabaseAccess.GenericReadableRow.GetInt32(Int32 index)
       at Microsoft.UpdateServices.Internal.ConfigurationTableRow.ReadRow(IDataRecord record)
       at Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccess.ExecuteSPGetConfiguration()
       at Microsoft.UpdateServices.Internal.BaseApi.UpdateServerConfiguration.Load()
       at Microsoft.UpdateServices.Internal.ClassFactory.CreateWellKnownType(Type type, Object[] args)
       at Microsoft.UpdateServices.Internal.ClassFactory.CreateInstance(Type type, Object[] args)
       at Microsoft.UpdateServices.ServerSync.ConfigurationChangeNotifier..ctor(AutoResetEvent proxyConfigurationChangeEvent)
       at Microsoft.UpdateServices.ServerSync.ContentSyncAgent..ctor()
       at Microsoft.UpdateServices.ServerSync.ContentSyncAgent.get_Instance()
       at Microsoft.UpdateServices.EventSystem.SusService.SusServiceStartUpThreadProc(), Retry Count: 0
       at Microsoft.UpdateServices.EventSystem.SusService.SusServiceStartUpThreadProc()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

    Wednesday, July 27, 2016 4:02 PM
  • Hi SaintFrag,

    Before reinstalling, I would try re-indexing WSUS database.

    https://technet.microsoft.com/en-us/library/dd939795%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396

    If it still doesn't work, I will choose reinstalling WSUS role from scratch.

    Best Regards,

    Anne


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.


    Thursday, July 28, 2016 8:05 AM
  • Are you suggesting that the WSUS database is re-indexed before or after installing KB3159706?

    I apologize in advance, I'm just trying to figure out how re-indexing the database will magically make the update not break WSUS.

    Friday, July 29, 2016 2:36 PM
  • My database is on a separate box on SQL 2014

    Just to perfectly clear, you did execute WsusUtil.exe with the  SQL_INSTANCE_NAME parameter? AFAIK it's mandatory with the db on an external SQL-server (documented if you run -> "WsusUtil.exe help postinstall").


    Rolf Lidvall, Swedish Radio (Ltd)

    Friday, July 29, 2016 3:32 PM
  • Though I don't believe it's mandatory based on what I've read (somewhere, can't remember where) as wsusutil will pull the operational settings from the registry, I've tried it both ways without any difference. In fact, just for fun I even ran it with made up information without change. For instance, running:

    wsusutil postinstall /servicing

    produces the same results as running this exact command, as is:

    wsusutil postinstall /servicing SQL_INSTANCE_NAME=porkypig.fakedomain.com

    I'm guessing the help has not been updated though, as there's no /servicing command documented anywhere that I can find.

    Friday, July 29, 2016 4:08 PM
  • Yeah, these days MS documentation routines are non-existing.

    Rolf Lidvall, Swedish Radio (Ltd)

    Friday, July 29, 2016 4:20 PM
  • Hi SaintFrag,

    Check if the following post can provide some useful information for you:

    https://social.technet.microsoft.com/Forums/windowsserver/en-US/59ad21be-7514-46df-adf3-fdf6ec15e132/wsus-breaks-after-kb3159706-released-552016?forum=winserverwsus

    Best Regards,

    Anne


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    Wednesday, August 3, 2016 8:52 AM
  • Thanks Anne, but I've posted in that thread (and others) looking for answers and only found people with the same problems when using a non-WID database.
    Wednesday, August 3, 2016 12:21 PM
  • Hi SaintFrag,

    Since this issue has not been answered completely according to current source, I would suggest you open a case with Microsoft, then more in-depth investigation can be done

    Here is the link:

    https://support.microsoft.com/en-us/gp/support-options-for-business

    Best Regards,

    Anne


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    Monday, August 8, 2016 9:18 AM
  • Anne,

    Though I understand that may be the best route to a solution, it is an incredibly irritating situation.  Microsoft had a product that worked with a configuration (WSUS with an external SQL Server) and had articles describing how to achieve said configuration (https://technet.microsoft.com/en-us/library/dd939918(v=ws.10).aspx).

    However, with one Windows Update, that SUPPORTED configuration has been broken.  So to pay $500 to get them to fix what they broke is like an auto mechanic disconnecting your spark plug when working on the engine and expecting you to pay them to fix it.  Only in this situation it's not as simple as plugging the spark plug back in.  The very thing that the update was updating (WSUS) broke.  Now I have to spend $500 to fix it.  That is absolutely absurd.

    Thursday, August 25, 2016 2:34 PM
  • For those of us using SQL Server, I have a solution!!!  I wrote a how-to on it, which you can find here:

    https://community.spiceworks.com/how_to/132301-fix-wsus-using-sql-server-after-kb3159706-broke-it

    Because of the nature of this issue and the many people like myself left frustrated by this situation, I will be posting it in a few different threads.  I apologize in advance if this comes across as spam to some people.


    • Edited by SaintFrag Wednesday, August 31, 2016 8:19 PM
    • Proposed as answer by Anisenko Pavel Wednesday, November 30, 2016 11:13 AM
    • Marked as answer by SaintFrag Wednesday, November 30, 2016 11:46 AM
    Wednesday, August 31, 2016 8:19 PM
  • Restored the efficiency of WSUS with separate SQL server. Thanks
    Wednesday, November 30, 2016 11:15 AM