I have a situation where it looks like the GC thread is causing the aspnet
worker process to crash with eventID 1000 (process stopped unexpectedly).
This is happening only in the dual xeon boxes in our farm. The app runs fine
in the pentium boxes we have in the farm. I created a dump file using adplus
when the process crashed. This the output from windbg for the thread that
caused the kernel32 exitprocess to be called
8 Id: 84c.884 Suspend: 1 Teb: 7fff6000 Unfrozen
ChildEBP RetAddr
1559fbdc 79269e7e KERNEL32!ExitProcess
1559fc30 792048a7 mscorsvr!gc_heap::gc1+0x185
1559fc94 7920199d mscorsvr!gc_heap::garbage_collect+0x22f
1559fca8 79244fbe mscorsvr!gc_heap::gc_thread_function+0x33
1559ffb4 7c57b388 mscorsvr!gc_heap::gc_thread_stub+0x1e
1559ffec 00000000 KERNEL32!BaseThreadStart+0x52
This the !dumpstack output using SOS for the same thread
Current frame: KERNEL32!ExitProcess
ChildEBP RetAddr Caller,Callee
1559fbdc 79269e7f mscorsvr!gc_heap::garbage_collect+0xa4, calling
KERNEL32!ExitProcess
1559fbf8 7920144b mscorsvr!ThreadStore::GetAllThreadList+0x28, calling
mscorsvr!SList<Thread,128,0>::GetNext
1559fc0c 7920407e mscorsvr!gc_heap::fix_youngest_allocation_area+0x1a,
calling mscorsvr!gc_heap::fix_allocation_context
1559fc30 792048a7 mscorsvr!gc_heap::garbage_collect+0x22f, calling
mscorsvr!gc_heap::gc1
1559fc40 7c741515 CRYPT32!_DllMainCRTStartup+0x66, calling CRYPT32!DllMain
1559fc48 7c599fe4 KERNEL32!WaitForSingleObjectEx+0x71
1559fc58 7c599fe4 KERNEL32!WaitForSingleObjectEx+0x71
1559fc94 7920199d mscorsvr!gc_heap::gc_thread_function+0x33, calling
mscorsvr!gc_heap::garbage_collect
1559fca8 79244fbf mscorsvr!Thread::SetExposedContext+0x28, calling
mscorsvr!gc_heap::gc_thread_function
1559fd1c 77f9ff3b NTDLL!KiUserApcDispatcher+0x7
1559fd20 77f9ff43 NTDLL!KiUserApcDispatcher+0xf, calling NTDLL!NtContinue
1559fde0 77fcc4c9 NTDLL!RtlAllocateHeap+0x7d4, calling
NTDLL!RtlLeaveCriticalSection
1559ffa8 79244fb8 mscorsvr!gc_heap::gc_thread_stub+0x18, calling
mscorsvr!_alloca_probe
1559ffb4 7c57b388 KERNEL32!BaseThreadStart+0x52
We are running on win2000 OS and .net framework 1.1 with SP1. The process
crashed atleast once a day and every dump file shows the exact same thing
calling the kernel32 exitprocess. The RAM on the box 3GB and we have memory
settings of 60%. The private bytes and virtual byest at the time of crash
look fine (private bytes around 400MB and virtual bytes around 1.2GB)..
Any ideas as to why this is happening? Any pointers will be greatly
appreciated