2

I have a 2 node failover cluster that I'm trying to patch. The initial patch level of the nodes was SQL Server 2016 SP1-CU1 (OS: Windows Server 2016 Standard) and I'm trying to upgrade to SQL Server 2016 SP1-CU3. I started by patching the inactive node (Node 2) and I was able to install CU3 without any issues. After performing a failover to Node 2 and determining that the patch was successful, I tried patching the newly inactive node (Node 1). The installer fails a few seconds after hitting "Update". Here are the Summary results:

Overall summary:
Final result: The patch installer has failed to update the following instance: > MSSQLSERVER. To determine the reason for failure, review the log files.
Exit code (Decimal): -2068578302
Requested action: Patch

Instance MSSQLSERVER overall summary:
Final result: The patch installer has failed to update the shared features. To determine the reason for failure, review the log files.
Exit code (Decimal): -2068578302
Exit facility code: 1204 Exit error code: 2
Exit message: The cluster group cannot be determined for the instance name 'MSSQLSERVER'. This indicates there is a problem with the product registry setting for ClusterName, with product discovery, or the cluster resources.
Requested action: Patch

The ClusterName in the registry is okay and product discovery runs successfully. Not seeing any errors in Event Viewer. Here is the stack dump from Detail.txt

There was an issue determining the cluster debugging information. Setup will continue. (01) 2017-07-07 09:33:14 Slp: The following is an exception stack listing the exceptions in outermost to innermost order (01) 2017-07-07 09:33:14 Slp: Inner exceptions are being indented (01) 2017-07-07 09:33:14 Slp: (01) 2017-07-07 09:33:14 Slp: Exception type: System.InvalidOperationException (01) 2017-07-07 09:33:14 Slp: Message: (01) 2017-07-07 09:33:14 Slp: There was an error generating the XML document. (01) 2017-07-07 09:33:14 Slp: HResult : 0x80131509 (01) 2017-07-07 09:33:14 Slp: Stack: (01) 2017-07-07 09:33:14 Slp: at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) (01) 2017-07-07 09:33:14 Slp: at System.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Object o, XmlSerializerNamespaces namespaces) (01) 2017-07-07 09:33:14 Slp: at Microsoft.SqlServer.Configuration.ClusterConfiguration.DiscoverClusterDataAction.ExecuteAction(String actionId) (01) 2017-07-07 09:33:14 Slp: Inner exception type: Microsoft.SqlServer.Configuration.Cluster.ClusterGroupsLookupException (01) 2017-07-07 09:33:14 Slp: Message: (01) 2017-07-07 09:33:14 Slp: There was an error to lookup cluster groups. Error: There was a failure to call cluster code from a provider. Exception message: Generic failure . Status code: 4098. Description: Not found (01) 2017-07-07 09:33:14 Slp: . (01) 2017-07-07 09:33:14 Slp: HResult : 0x86d8000e (01) 2017-07-07 09:33:14 Slp: FacilityCode : 1752 (6d8) (01) 2017-07-07 09:33:14 Slp: ErrorCode : 14 (000e) (01) 2017-07-07 09:33:14 Slp: Data: (01) 2017-07-07 09:33:14 Slp: errorMessage = There was a failure to call cluster code from a provider. Exception message: Generic failure . Status code: 4098. Description: Not found . (01) 2017-07-07 09:33:14 Slp: WatsonData = Microsoft.SqlServer.Configuration.Cluster.ClusterGroupsLookupException@14 (01) 2017-07-07 09:33:14 Slp: Stack: (01) 2017-07-07 09:33:14 Slp: at Microsoft.SqlServer.Configuration.Cluster.WindowsCluster.get_Groups() (01) 2017-07-07 09:33:14 Slp: at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write70_WindowsCluster(String n, String ns, WindowsCluster o, Boolean isNullable, Boolean needType) (01) 2017-07-07 09:33:14 Slp: at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write224_WindowsCluster(Object o) (01) 2017-07-07 09:33:14 Slp: Inner exception type: Microsoft.SqlServer.Configuration.Cluster.ClusterProviderDetailedException (01) 2017-07-07 09:33:14 Slp: Message: (01) 2017-07-07 09:33:14 Slp: There was a failure to call cluster code from a provider. Exception message: Generic failure . Status code: 4098. Description: Not found (01) 2017-07-07 09:33:14 Slp: . (01) 2017-07-07 09:33:14 Slp: HResult : 0x86d70002 (01) 2017-07-07 09:33:14 Slp: FacilityCode : 1751 (6d7) (01) 2017-07-07 09:33:14 Slp: ErrorCode : 2 (0002) (01) 2017-07-07 09:33:14 Slp: Data: (01) 2017-07-07 09:33:14 Slp: ExceptionMessage = Generic failure (01) 2017-07-07 09:33:14 Slp: StatusCode = 4098 (01) 2017-07-07 09:33:14 Slp: Description = Not found (01) 2017-07-07 09:33:14 Slp: WatsonData = Microsoft.SqlServer.Configuration.Cluster.ClusterProviderDetailedException@2 (01) 2017-07-07 09:33:14 Slp: Stack: (01) 2017-07-07 09:33:14 Slp: at Microsoft.SqlServer.Configuration.Cluster.WmiClusterGroup.get_Name() (01) 2017-07-07 09:33:14 Slp: at Microsoft.SqlServer.Configuration.Cluster.WindowsCluster.get_Groups() (01) 2017-07-07 09:33:14 Slp: Inner exception type: System.Management.ManagementException (01) 2017-07-07 09:33:14 Slp: Message: (01) 2017-07-07 09:33:14 Slp: Generic failure (01) 2017-07-07 09:33:14 Slp: HResult : 0x80131501 (01) 2017-07-07 09:33:14 Slp: Data: (01) 2017-07-07 09:33:14 Slp: WmiErrorCode = Failed (01) 2017-07-07 09:33:14 Slp: WatsonData = Failed@4098 (01) 2017-07-07 09:33:14 Slp: Description = Not found (01) 2017-07-07 09:33:14 Slp: ErrorType = 2 (01) 2017-07-07 09:33:14 Slp: Operation = GetObject (01) 2017-07-07 09:33:14 Slp: ParameterInfo = MSCluster_ResourceGroup.Name="Available Storage" (01) 2017-07-07 09:33:14 Slp: ProviderName = MS_CLUSTER_PROVIDER (01) 2017-07-07 09:33:14 Slp: StatusCode = 4098 (01) 2017-07-07 09:33:14 Slp: Stack: (01) 2017-07-07 09:33:14 Slp: at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode) (01) 2017-07-07 09:33:14 Slp: at System.Management.ManagementObject.Initialize(Boolean getObject) (01) 2017-07-07 09:33:14 Slp: at System.Management.ManagementBaseObject.get_Properties() (01) 2017-07-07 09:33:14 Slp: at System.Management.ManagementBaseObject.GetPropertyValue(String propertyName) (01) 2017-07-07 09:33:14 Slp: at Microsoft.SqlServer.Configuration.WMIInterop.ResourceGroup.get_Name() (01) 2017-07-07 09:33:14 Slp: at Microsoft.SqlServer.Configuration.Cluster.WmiClusterGroup.get_Name() (01) 2017-07-07 09:33:14 Slp: Completed dumping final cluster state.

What sticks out to me here is the failure of grabbing the resource group "Available Storage" using WMI; so I thought I would play around with writing some powershell to collect resource groups using get-wmiobject to see if I could track down any possible errors there. When I run the following snippet

    get-wmiobject mscluster_resourcegroup -computer COMPUTERNAME-N1 -namespace "ROOT\MSCluster"

I do not receive any values; if I run this same script against Node 2 and any other node in all of my other failover clusters, no matter if it's active or inactive, I'm able to pull back the 3 resource groups (Available Storage, Cluster Group, and SQL Server (MSSQLSERVER)). I've done basic research to see if the WMI repository is corrupt, but nothing is pointing me in that direction. Any ideas? Thanks!

  • 2
    When was this node last rebooted? I've seen CUs fail in the first few seconds due to pending reboots (even though you'd expect to be blocked by that before proceeding with the update). – AMtwo Jul 7 '17 at 15:39
  • The node has been rebooted multiple times just in the last couple of days while I've been researching this issue; including today. We've also performed Windows Updates so both nodes have the same WU's. Thanks! – Colin Douglas Jul 7 '17 at 15:45
3

The issue was finally resolved after updating the node with the latest Windows Updates. Thanks!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.