このダンプを MS に送信すると、MS からこれらの結果が返されました。これを再現して、Web アプリが別のサーバーでクラッシュした理由を突き止めようとしています。私のコメントは @@@ で始まります。どんな助けでも大歓迎です。
0:025> !critlist @@@ *This command is no longer available so I used !locks*
CritSec at 786dd8e0. Owned by thread 25.
スレッド 25 はクリティカル セクションを保持 (または欠落) しており、以下のスレッドはそれを待機しています。
このロックの影響 @@@ Debug Diag Tool で再現できます
ブロックされたスレッドの 70.42%
(スレッド 15 30 31 32 33 34 35 36 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 7 8 7 8 7 8 20 76 84 85 86 87 88 89 90 91 92 93 94 95 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 127 129 135 138)
-- コール スタックのチェック:
:025> kL
ChildEBP RetAddr
0285fcc4 7c827b69 ntdll!KiFastSystemCallRet
0285fcc8 77e6202c ntdll!ZwWaitForMultipleObjects+0xc
0285fd70 77e62fbe kernel32!WaitForMultipleObjectsEx+0x11a
0285fd8c 79f8e39a kernel32!WaitForMultipleObjects+0x18
0285fdac 79f8e48c mscorwks!SVR::WaitForFinalizerEvent+0x77
0285fdc0 79e9caff mscorwks!SVR::GCHeap::FinalizerThreadWorker+0x49
0285fdd4 79e9ca9b mscorwks!ManagedThreadBase_DispatchInner+0x4f
0285fe68 79e9c9c1 mscorwks!ManagedThreadBase_DispatchMiddle+0xb1
0285fea4 79f20508 mscorwks!ManagedThreadBase_DispatchOuter+0x6d
0285fecc 79f20519 mscorwks!ManagedThreadBase_NoADTransition+0x32
0285fedc 79f220eb mscorwks!ManagedThreadBase::FinalizerBase+0xd
0285ff14 79f0e255 mscorwks!SVR::GCHeap::FinalizerThreadStart+0xbb
0285ffb8 77e6482f mscorwks!Thread::intermediateThreadProc+0x49
0285ffec 00000000 kernel32!BaseThreadStart+0x34
-- スタックを再構築: @@@スタックを再構築して以下の結果を生成する方法がわかりません。ロックの原因となっている DLL を知る必要があります。この例では、secSSo.dll です。見つけたら、コマンド lmvm を使用してスレッドの所有者を見つけることができます。
0285dc00 00000000
0285dc04 000b7a80
0285dc08 23000003*** ERROR: Symbol file could not be found. Defaulted to export symbols
for secSSO.dll -
secSSO!SSOStartLogin+0x8d6f4
0285dc0c 0285dc74
0:025> lmvm secSSO
start end module name
22f70000 23036000 secSSO (export symbols) secSSO.dll
Loaded symbol image file: secSSO.dll
Image path: C:\Program Files\Business Objects\Common\2.8\bin\secSSO.dll
Image name: secSSO.dll
Timestamp: Sun Oct 14 01:39:17 2007 (4711AB85)
CheckSum: 000C83D4
ImageSize: 000C6000
File version: 10.5.0.1943
Product version: 10.5.0.1943
File flags: 8 (Mask 3F) Private
File OS: 4 Unknown Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Business Objects
ProductName: Crystal Enterprise
InternalName: Crystal Enterprise
OriginalFilename: Crystal Enterprise
ProductVersion: 10.5.0.1943
FileVersion: 10.5.0.1943
FileDescription: Crystal Enterprise
LegalCopyright: Copyright (C)1995-2007 Business Objects
LegalTrademarks: Crystal Enterprise (tm) is a trademark of Business Objects
-- つまり、スレッド 25 がすでに Criticalsection をリークしているか、何もしていないかのどちらかで、残りのスレッドはそれを待っているだけです。