I am running 5 Hyper-V 2012 R2 Clusters and working to get CAU running properly with the Hotfix plugin. The updating is working fine, updates are applied appropriately with folder rules for installing third-party driver updates. However, the
hosts are not rebooting after the driver update even though the installer is returning 3010, update successful reboot required.
The report is complaining that CAU can not determine if rebooting the host would break quorum or not, so it skips the reboot.
Running CAU with the windows update plugin behaves as desired, including rebooting the hosts so I do not believe this is a problem with the cluster setup.
Here is the output of the report with the error I am getting:
<NumberOfFailedUpdates>0</NumberOfFailedUpdates>
<NumberOfSucceededUpdates>1</NumberOfSucceededUpdates>
<Status>Succeeded</Status>
- <TransientInstallErrors z:Id="61" z:Size="1">
- <ErrorRecordData z:Id="62">
<Category>OpenError</Category>
<ErrorDetails xmlns:d8p1="http://schemas.datacontract.org/2004/07/System.Management.Automation" i:nil="true" />
- <ExceptionData z:Id="63">
- <Data xmlns:d9p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" z:Id="64" z:Size="1">
- <d9p1:KeyValueOfstringanyType>
<d9p1:Key z:Ref="18" i:nil="true" />
<d9p1:Value z:Id="65" xmlns:d11p1="http://www.w3.org/2001/XMLSchema" i:type="d11p1:boolean">true</d9p1:Value>
</d9p1:KeyValueOfstringanyType>
</Data>
<ErrorCode>-2146233088</ErrorCode>
<ExceptionType z:Id="66">Microsoft.ClusterAwareUpdating.ClusterUpdateException</ExceptionType>
- <InnerExceptionData z:Id="67">
<Data xmlns:d10p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" z:Id="68" z:Size="0" />
<ErrorCode>5005</ErrorCode>
<ExceptionType z:Id="69">System.ComponentModel.Win32Exception</ExceptionType>
<InnerExceptionData i:nil="true" />
<Message z:Id="70">A cluster node is not available for this operation</Message>
<NeutralMessage i:nil="true" />
<StackTrace z:Id="71">at MS.Internal.ClusterAwareUpdating.FailoverClusterImpl.FailoverClusterNodeImpl.ClusterControl(Int32 controlCode, Byte[] input, Int32 startingBufferSize) at MS.Internal.ClusterAwareUpdating.FailoverClusterImpl.FailoverClusterNodeImpl.FailureWillBreakQuorum()
at MS.Internal.ClusterAwareUpdating.FailoverClusterImpl.NodeFailureWillBreakQuorum(String nodeName)</StackTrace>
</InnerExceptionData>
<Message z:Id="72">Could not determine if updating node "cluster-node01" would cause the cluster to lose quorum: (Win32Exception) A cluster node is not available for this operation</Message>
<NeutralMessage z:Id="73">Could not determine if updating node "cluster-node01" would cause the cluster to lose quorum: (Win32Exception) A cluster node is not available for this operation</NeutralMessage>
<StackTrace z:Id="74">at MS.Internal.ClusterAwareUpdating.FailoverClusterImpl.NodeFailureWillBreakQuorum(String nodeName) at Microsoft.ClusterAwareUpdating.Commands.InvokeCauRunCommand.<_RebootNode>d__18.MoveNext() --- End of stack
trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ClusterAwareUpdating.Commands.InvokeCauRunCommand.<_InstallFirstOrderUpdates>d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ClusterAwareUpdating.Commands.InvokeCauRunCommand.<>c__DisplayClass3f.<<_InstallUpdates>b__3a>d__41.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ClusterAwareUpdating.Commands.InvokeCauRunCommand.Retrier.<>c__DisplayClass91.<<RetryAsync>b__90>d__93.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Microsoft.ClusterAwareUpdating.Commands.InvokeCauRunCommand.Retrier.<RetryAsync>d__96`1.MoveNext()</StackTrace>
</ExceptionData>
<FullyQualifiedErrorId z:Id="75">QuorumCheckFailed,Microsoft.ClusterAwareUpdating.Commands.InvokeCauRunCommand</FullyQualifiedErrorId>
<InvocationName z:Ref="30" i:nil="true" />
<ScriptStackTrace z:Ref="31" i:nil="true" />
<TargetObjectString i:nil="true" />
</ErrorRecordData>
</TransientInstallErrors>
I have searched on the errors but am having no luck. Any help would be appreciated.