将 ASP.NET 解决方案升级到 4.0 后,我们注意到每次应用程序池自动回收(每 1740 分钟),恰好 32 秒后,我们在事件日志中收到事件 ID 5009 的错误。
我在服务器上安装了调试器并在故障转储上运行了分析工具,您可以在下面看到我得到了什么。你能帮我理解可能是什么问题吗?这发生在 4 台不同的机器上(它们都是虚拟机)。我注意到在完整的调用堆栈中存在一个“循环”(出于空间原因,我在这里省略了你),以下一组调用一遍又一遍地重复:
clr!Thread::DoAppropriateWaitWorkerAlertableHelper+4d 00000000
00000000 00000000
1bb30ba0 0000000020a0cf60 00000000
00000000
clr!Thread::DoAppropriateWaitWorker+146 000000001bb30ba0 00000000
00000001 0000000001c05970 00000000
00000000
clr!Thread::DoAppropriateWait+73 0000000020a0c0a0 00000000
00000001 000007fee4736ca9 000007fe
e4736c2c
clr!CLREvent::WaitEx+c1 0000000000000000 00000000
00000000 0000000000000000 000007fe
e7e7f960
clr! RegMeta::SaveToStream+134 0000000020a0b740 00000000
1bb30ba0 00000000dc951994 00000000
76df0e4a
clr!WaitForEndOfShutdown+9 0000000000010000 000007fe
e7804b65 0000000000000000 00000000
00000000
clr!Thread::RareDisablePreemptiveGC+490 00000007fee4a8cca0 00000000
2000009000009dc951994 00000000
clr!EEHashTableBase,0>::FindItem+5c 000007fee4a8cca0 00000000
20a0b9f0 0000000000000001 000007fe
efbc229b
clr!IsCerRootMethod+b1 0000000000000001 00000000
00000000 0000000000000000 00000000
ffffff98
clr!TAStackCrawlCallBack+1e9 0000000020a0bd90 00000000
20a0b9f0 0000000020a0bd90 00000000
20a0bd90
clr!Thread::MakeStackwalkerCallback+2f 0000000020a0c2a0 00000000
00000002 0000000000000002 00000000
20a0c060
clr!Thread:: StackWalkFramesEx+8d 000000001bb30ba0 00000000
1bb30ba0 000000001bb30ba0 00000000
00020019
clr!Thread::ReadyForAsyncException+197 0000000076f471ba 00000000
1bb30ba0 00000000 0000000000000000 00000000
clr
!Thread::HandleThreadAbort+6c76def5e4 000007fe
00000000000000000000091bb30ba0 00000000
clr!Thread::HandleThreadInterrupt+7e 00000000000007c0 00000000
000007c0 000007fee79ae71c 000007fe
e4d9f9dc
分析摘要
类型描述建议错误在 w3wp_QAWEB4 _PID_4668 _Date__05_02_2012__Time_04_16_30PM_242 _Second_Chance_Exception_C0000005.dmp中的汇编指令 clr! CLREvent ::WaitEx+f in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll尝试在线程 20 上写入内存位置 0x20990ff0 时导致访问冲突异常 (0xC0000005) 请跟进供应商 Microsoft Corporation for C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
信息DebugDiag确定此转储文件 (w3wp_QAWEB4 _PID_4668 _Date__05_02_2012__Time_04_16_30PM_242 _Second_Chance_Exception_C0000005.dmp )是故障转储,并且没有执行任何挂起分析。如果您希望为故障转储启用组合的崩溃和挂起分析,请编辑 Globals.asp 脚本(位于 DebugDiag\Scripts\inc 文件夹中)并将 g_DoCombinedAnalysis 常量设置为 True。
分析细节
w3wp_ QAWEB4 _PID_ 4668 _Date__05_02_2012__Time_04_16_30PM_ 242 _Second_Chance_Exception_C0000005.dmp 的报告 执行的分析类型 崩溃分析 机器名称 XXXX01-QA-WEB01 操作系统 Windows Server 2008 Service Pack 2 处理器数量
进程 ID 4668 进程映像 c:\Windows\System3 .exe 系统正常运行时间 4 天 14:59:36 进程正常运行时间 00:06:32
线程 20 - 系统 ID 4364 入口点 clr!Thread::intermediateThreadProc 创建时间 2012 年 5 月 2 日下午 4:10:16 在用户模式下花费的时间 0 天 0:0:1.421 在内核模式下花费的时间 0 天 0:0: 0.453
.NET 调用堆栈
函数 System.Threading.Thread.SleepInternal(Int32) System.Threading.Thread.Sleep(System.TimeSpan) Sitecore.Services.Heartbeat.WorkLoop() *错误:模块加载已完成,但无法为 Sitecore.Kernel.dll 加载符号System.Threading.ExecutionContext.runTryCode(System.Object) System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) System.Threading.ThreadHelper.ThreadStart()
由于空间原因删除了完整的调用堆栈
异常信息 CLR!CLREVENT::WAITEX+FIn w3wp_ QAWEB4 _PID_ 4668 _Date__05_02_2012__Time_04_16_30PM_ 242 _Second_Chance_Exception_C0000005.dmp 汇编指令 clr!CLREvent::WaitEx+f in C:\Windows\Microsoft.33\Framework64\rv41.dll0 Microsoft Corporation 在尝试写入线程 20 上的内存位置 0x20990ff0 时导致访问冲突异常 (0xC0000005)
模块信息
图像名称:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 符号类型:PDB 基地址:0x00000003 00000000 注释:Flavor=Retail COM DLL:False 公司名称:Microsoft Corporation ISAPIExtension:False 文件说明:Microsoft .NET Runtime 公共语言运行时 - WorkStation ISAPIFilter:False 文件版本:4.0.30319.239 (RTMGDR.030319-2300) 托管 DLL:False 内部名称:clr.dll VB DLL:False 法律版权:© Microsoft Corporation。版权所有。加载的图像名称:clr.dll 合法商标:00905a4d Time Stamp: Sat Jul 09 05:44:20 2011
Checksum: 0x00000000
映射图像名称:原始文件名:clr.dll 模块名称:clr 私有构建:DDBLD205 单线程:False 产品名称:Microsoft® .NET Framework 模块大小:9.39 MBytes 产品版本:4.0.30319.239 符号文件名:c:\symcache\ clr.pdb\887DDF30473443C9905C3217115D7DE72\clr.pdb 特殊版本:&
脚本摘要
脚本名称 状态 错误代码 错误源 错误说明 源行 CrashHangAnalysis.asp 已完成