Microsoft distributes Microsoft SQL Server 2012 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2012 fix release.
When you upgrade a Microsoft SQL Server 2008 or Microsoft SQL Server 2008 R2 cluster instance to a Microsoft SQL Server 2012 cluster instance, the upgrade operation fails. Additionally, you receive the following error message:
There was an error during the SQL Server upgrade operation. Setup failed to move the failover cluster resource group and bring it online. To continue this upgrade operation, bring the resource group online manually and retry Setup. Reason: The cluster group 'ClusterGroupName' could not be brought online on node 'Any available node'. Error: There was a failure to call cluster code from a provider. Exception message: Generic failure. Status code: 997. Description: Overlapped I/O operation is in progress.
Note This issue is more likely to occur when the cluster instance contains many databases.
This issue occurs because of a time-out that occurs during the cluster upgrade operation. The cluster group takes much longer than expected to upgrade the database. During this time, the SQL Server cluster resource remains in an "online pending" state. This causes the upgrade operation to fail.
Note The cluster group waits for five minutes to bring resources online on another node.
Cumulative update information
SQL Server 2012
The fix for this issue was first released in Cumulative Update 2 for SQL Server 2012. For more information about how to obtain this cumulative update package for SQL Server, click the following article number to view the article in the Microsoft Knowledge Base:
2703275 Cumulative update package 2 for SQL Server 2012Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2692828 The SQL Server 2012 builds that were released after SQL Server 2012 was released
To work around this issue, follow these steps:
Upgrade approximately half of the passive nodes one by one. To prevent the setup operation from moving the resource group to any upgraded nodes, use the following parameter:
For more information about the /FAILOVERCLUSTERROLLOWNERSHIP parameter, go to the following MSDN website:
Manually add the nodes that were upgraded in step 1 to possible owners for the network name resource.
Manually move the resource group to an upgraded node, and wait for the group to come online.
Manually remove nodes that were not upgraded from possible owners for the network name resource.
Upgrade the rest of the cluster nodes.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.