In a Windows Server 2012 cluster environment, resource movement (e.g. failover) can lead to infinite retries on the source host.
When manually moving resources from Host 1 to Host 2 in Windows 2012 cluster, Host 2 will issue the Preempt Reservation command to take over and reserve the device. However, SDDDSM - 18.104.22.168-5 does not handle the preempted reservation status on Host 1, which leads Host 1 to believe it still has reserves on the disks. When I/O is performed from Host 1 on those resources, a reservation conflict is encountered. I/O retry attempts are made indefinitely by applications that are not "reservation aware", such as Disk Management.
Steps to reproduce the issue:
1. Move the resources or application holding a resource from first host to second host.
2. Run application like diskmgmt.msc on the first host.
3. Any I/O on the moved resource goes into infinite retry on the first host.
4. Application (Diskmgmt.msc) becomes unresponsive on first host.
The following logs entries may be seen repeatedly in system32\sdd.log
05/24 21:03:03 Entering GmInterpretErrorEx(2225) MPD-005-600507680180870100000000000001AA @ 9de31780, Path-0 @ 9de31be0
05/24 21:03:03 GmInterpretError(2381) MPD-005-600507680180870100000000000001AA, Path-0, DsmId 9de31be0, NTSTATUS c0000185, Srb 6307b360,
05/24 21:03:03 GmInterpretError(2389) MPD-005-600507680180870100000000000001AA, Srb 6307b360, Cdb 1a, ScsiStat 18, SrbStatus 04, Sense ffffff.
05/24 21:03:03 GmInterpretError(3005), MPD-005-600507680180870100000000000001AA, Path-0, Errors 0, Srb 6307b360, Irp 65b03990 will be retried, retry interval 0, hint 4.
Windows event log will show Event 16 & 17 errors.
The fix in SDDDSM will correct the condition and fail the I/O on host encountering reservation conflict. The fix should be installed on all nodes of the cluster.
Please download and install the latest version of SDDDSM.
28 June 2018