KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a crash dump from my app showing a bunch of threads waiting on a syncblk, and the syncblk shows that it has no owning thread. How is that possible? I'm trying to reproduce the symptom in a test app, and I can't figure out what could possibly happen to produce that result....having the owning thread exit or die without releasing the syncblk still shows up as owning the object, just the threadid is "XXX"....I've tested using fully managed graceful exit and hard thread termination via pinvoke....I tested a bunch of different combinations of waits without pulses, mismatched enters and exits...nothing produces a syncblk which blocks threads and shows no owner.....I'm running out of ideas Here is the output from my crashdump that I'm trying to replicate: (Note index #1236) 0:000> !syncblk Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner 784 0000000004f12eb0 3 1 000000000508a460 32a8 68 00000001a0a20510 966 0000000004f06928 1 1 00000000052c5da0 2380 114 00000001df3080f8 1085 0000000004f23088 1 1 00000000052c8080 496c 120 00000001a0325238 1144 0000000005160d20 1 1 00000000050968b0 d74 56 00000000ff61b570 1151 0000000004f0c2c8 1 1 000000000508d8b0 3f64 77 000000017f66dc20 1236 0000000004f0b4f8 16 0 0000000000000000 none 000000019f1ec5d8 1261 0000000004f0ffe8 1 1 0000000008f18fc0 446c 94 000000013f8e70b0 1306 0000000004f0e918 1 1 00000000052c91f0 406c 123 000000011f5936f8 1318 0000000004f0e528 3 1 0000000008f1d580 24d8 106 000000015fc73f28 1329 0000000004f0cc58 1 1 0000000005095740 2fbc 53 000000011f36d320 1332 0000000004f15b38 1 1 0000000008f16710 3804 87 000000019f964728 1387 0000000004f22350 1 1 0000000008f18420 5180 92 00
Tags (comma-separated)
Save Edits
Cancel