症状是大约每周一次 DFSR(分布式文件系统复制)停止复制,Windows 备份(wbengine.exe)停止响应。当我分析它们的等待链时,它们正在等待 dfsrs.exe 线程:4664 和线程:4680。dfsrs.exe 正在等待线程:4664。
我关闭了 dfsrs.exe,wbengine 开始响应。日志显示备份失败,因为卷影副本创建已超时。
重新启动 dfsrs.exe,我们就可以恢复正常了。
此问题出现在两台新的 Server 2012 R2 计算机(已完全更新)上,它们彼此之间具有 DFS 共享。禁用计算机上的 Windows 备份似乎可以阻止它引发此问题(即使我们有其他软件可以创建多个每日卷影副本)。两台服务器上都几乎没有非微软软件。
我拿了转储文件处于卡住状态的进程,但我想 VSSVC.dmp 将是最重要的。我不知道如何很好地使用 WinDbg,但这是我得到的结果:
0:000> !analyze -hang
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
Probably caused by : dfsrs.exe ( dfsrs!RunTaskCallback+17 )
Followup: MachineOwner
-------------------------------------
0:000> !dml_proc
DbgId PID Image file name
0 8c8 C:\Windows\System32\dfsrs.exe
0:000> !dml_proc 0x0
DbgId PID Image file name
0 8c8 C:\Windows\System32\dfsrs.exe
Browse module list
Threads:
DbgId TID Name (if available)
0 8cc "<No name>"
1 8e8 "<No name>"
2 1a70 "<No name>"
3 1a94 "<No name>"
4 1af0 "<No name>"
5 306c "<No name>"
6 5d4 "<No name>"
7 2648 "<No name>"
8 2654 "<No name>"
9 204c "<No name>"
a 2cd0 "<No name>"
b 304c "<No name>"
c 784 "<No name>"
d eec "<No name>"
e 3220 "<No name>"
f 298c "<No name>"
10 1238 "<No name>"
11 2b80 "<No name>"
12 1248 "<No name>"
13 3464 "<No name>"
14 2cf0 "<No name>"
15 31ac "<No name>"
16 3100 "<No name>"
17 308c "<No name>"
18 2a74 "<No name>"
19 18e0 "<No name>"
-------------------
0:000> ~[0x10]s;kM
ntdll!NtWaitForSingleObject+0xa:
00007ffc`27e606fa c3 ret
# Child-SP RetAddr Call Site
00 0000008e`4af1c348 00007ffc`25111118 ntdll!NtWaitForSingleObject+0xa
01 0000008e`4af1c350 00007ff7`0540754f KERNELBASE!WaitForSingleObjectEx+0x94
02 0000008e`4af1c3f0 00007ff7`0537d78c dfsrs!Task::ShutDown+0x283
03 0000008e`4af1c490 00007ff7`053e0656 dfsrs!UpdateDistributionTask::RemoveUpdateTask+0x2c
04 0000008e`4af1c540 00007ff7`053b845c dfsrs!UpdateManager::FinalizeUpdateManager+0x152
05 0000008e`4af1c5d0 00007ff7`053ab007 dfsrs!InConnection::InConnectionContentSetContext::FinalizeInConnectionContentSetContext+0x2e4
06 0000008e`4af1c740 00007ff7`053752e2 dfsrs!InConnection::DeleteContentSetFromInConnection+0x2a3
07 0000008e`4af1c870 00007ff7`0534f1b4 dfsrs!ReplicaSetManager::DeleteContentSetFromReplicaSetManager+0x1e2
08 0000008e`4af1c950 00007ff7`05338e89 dfsrs!ContentSetManager::InternalFinalizeContentSetManager+0x310
09 0000008e`4af1cbe0 00007ff7`053362c5 dfsrs!VolumeManager::FinalizeVolumeManager+0x265
0a 0000008e`4af1ccd0 00007ff7`05323b1a dfsrs!VolumeManager::ShutdownVolume+0x265
0b 0000008e`4af1ce20 00007ff7`05227034 dfsrs!FrsReplicator::FinalizeReplicator+0x182
0c 0000008e`4af1cef0 00007ff7`05239c0f dfsrs!FrsService::InternalShutdown+0x1f4
0d 0000008e`4af1d030 00007ffc`23896e83 dfsrs!VssWriter::OnPrepareSnapshot+0x12f
0e 0000008e`4af1d0a0 00007ffc`2389d145 vssapi!CVssWriterImpl::OnPrepareSnapshotGuard+0x2b
0f 0000008e`4af1d0d0 00007ffc`2389c470 vssapi!CVssWriterImpl::PrepareForSnapshotInternal+0xc71
10 0000008e`4af1e150 00007ffc`270e20f3 vssapi!CVssWriterImpl::PrepareForSnapshot+0x50
11 0000008e`4af1e1a0 00007ffc`270e6fad rpcrt4!Invoke+0x73
12 0000008e`4af1e200 00007ffc`2757d58a rpcrt4!NdrStubCall2+0x35e
13 0000008e`4af1e870 00007ffc`272522b3 combase!CStdStubBuffer_Invoke+0xa0
14 0000008e`4af1e8b0 00007ffc`275786ad oleaut32!CUnivStubWrapper::Invoke+0x53
15 0000008e`4af1e900 00007ffc`27404f5a combase!SyncStubInvoke+0x205
16 (Inline Function) --------`-------- combase!StubInvoke+0xc0
17 0000008e`4af1eaa0 00007ffc`2757951f combase!CCtxComChnl::ContextInvoke+0x27a
18 (Inline Function) --------`-------- combase!DefaultInvokeInApartment+0x51
19 0000008e`4af1ecb0 00007ffc`27578fb0 combase!AppInvoke+0x1af
1a 0000008e`4af1eda0 00007ffc`27579b35 combase!ComInvokeWithLockAndIPID+0x676
1b 0000008e`4af1efe0 00007ffc`270e2467 combase!ThreadInvoke+0x48a
1c 0000008e`4af1f0b0 00007ffc`270e22c0 rpcrt4!DispatchToStubInCNoAvrf+0x33
1d 0000008e`4af1f100 00007ffc`270eaa88 rpcrt4!RPC_INTERFACE::DispatchToStubWorker+0x190
1e 0000008e`4af1f200 00007ffc`270e2d26 rpcrt4!LRPC_SCALL::DispatchRequest+0x4c9
1f 0000008e`4af1f310 00007ffc`270e2b78 rpcrt4!LRPC_SCALL::HandleRequest+0x291
20 0000008e`4af1f3c0 00007ffc`270e195d rpcrt4!LRPC_SASSOCIATION::HandleRequest+0x238
21 0000008e`4af1f450 00007ffc`270e175e rpcrt4!LRPC_ADDRESS::ProcessIO+0x444
22 0000008e`4af1f590 00007ffc`27e0af00 rpcrt4!LrpcIoComplete+0x144
23 0000008e`4af1f630 00007ffc`27e09238 ntdll!TppAlpcpExecuteCallback+0x210
24 0000008e`4af1f6a0 00007ffc`254d13d2 ntdll!TppWorkerThread+0x888
25 0000008e`4af1fa80 00007ffc`27de54e4 kernel32!BaseThreadInitThunk+0x22
26 0000008e`4af1fab0 00000000`00000000 ntdll!RtlUserThreadStart+0x34
有什么想法可以继续吗?我没想到在服务冻结时运行进程资源管理器,但如果我们想尝试的话,下周它会再次冻结。
答案1
好吧,问题最终出在备份软件(Syncovery)上,它存在内存泄漏,导致 VSS 卡住,即使软件本身完成了工作。更新似乎已经解决了这个问题。