[Mono-dev] Process freezes on Windows

Yosi Levy yosilevy at gmail.com
Wed Oct 5 14:36:30 EDT 2011


Hi all,

 

We have a weird problem where it seems that threading use and locking is
caused our process to freeze. The weird thing is that it freezes sometimes
after 10 consecutive runs, sometimes after 200.

 

We're running an EXE bundled with MKBUNDLE on windows. It otherwise works
great.

 

We've compiled MONO-2.0.dll with debug info to know more.

 

The info is below. As you'll see there's an int 3 which was probably done by
debugger. Exception analysis just says BREAKPOINT so should we understand
that the process is just dead-locked?

How can we debug this (again - this is a bundled EXE) ?

 

It seems to be related to threading and locking since if we reduce usage of
C# lock statements, it freezes less. 

 

Please help! Many thanks.

 

The info:

 

Thread that raised breakpoint:

Unflagged           >             8172       0              Worker Thread
_threadstartex _callthreadstartex           Normal 0000000000001111
0

 

It's disassembly:

 

__RtlUserThreadStart at 8:

77399E8A  mov         edi,edi  

77399E8C  push        ebp  

77399E8D  mov         ebp,esp  

77399E8F  push        ecx  

77399E90  push        ecx  

77399E91  lea         eax,[ebp-8]  

77399E94  push        eax  

77399E95  call        _RtlInitializeExceptionChain at 4 (77399E6Fh)  

77399E9A  push        dword ptr [ebp+0Ch]  

77399E9D  push        dword ptr [ebp+8]  

77399EA0  call        ___RtlUserThreadStart at 8 (77399EABh)  

77399EA5  int         3  

77399EA6  nop  

77399EA7  nop  

77399EA8  nop  

77399EA9  nop  

77399EAA  nop  

 

Its Call-stack:

 

               ntdll.dll!_ZwWaitForSingleObject at 12()  + 0x15 bytes     

               ntdll.dll!_ZwWaitForSingleObject at 12()  + 0x15 bytes     

               kernel32.dll!_WaitForSingleObjectExImplementation at 12()  +
0x43 bytes             

               kernel32.dll!_WaitForSingleObject at 8()  + 0x12 bytes     

               libdispatch.dll!0bec3ecb()            

                [Frames below may be incorrect and/or missing, no symbols
loaded for libdispatch.dll]  

               libdispatch.dll!0bec38c3()             

                libdispatch.dll!0bec3238()            

                libdispatch.dll!0bec2e6c()            

                libdispatch.dll!0bec3430()            

                libdispatch.dll!0bec325f()             

                pthreadVC2.dll!73714212()          

                msvcr80.dll!_callthreadstartex()  Line 348 + 0x6 bytes     C

               msvcr80.dll!_threadstartex(void * ptd=0x028a9678)  Line 326 +
0x5 bytes             C

               kernel32.dll!@BaseThreadInitThunk at 12()  + 0x12 bytes


               ntdll.dll!___RtlUserThreadStart at 8()  + 0x27 bytes           

>             ntdll.dll!__RtlUserThreadStart at 8()  + 0x1b bytes             

 

 

All threads:

 

Unflagged                           888         0              Worker Thread
__endthreadex                _NtWaitForMultipleObjects at 20
Highest 0000000000001111           0

Unflagged                           1208       0              Worker Thread
thread_start      mono_jit_runtime_invoke          Normal
0000000000001111           0

Unflagged                           1384       0              Worker Thread
_TppWorkerThread at 4 _ZwWaitForWorkViaWorkerFactory at 8                Normal
0000000000001111           0

Unflagged                           1440       0              Worker Thread
_TppWorkerThread at 4 _ZwWaitForWorkViaWorkerFactory at 8                Normal
0000000000001111           0

Unflagged                           2840       0              Worker Thread
thread_start
ves_icall_System_Threading_WaitHandle_WaitOne_internal     Normal
0000000000001111           0

Unflagged                           3176       0              Worker Thread
__endthreadex                _ZwWaitForSingleObject at 12     Time Critical
0000000000001111           0

Unflagged                           3492       0              Worker Thread
_TppWorkerThread at 4 _ZwWaitForWorkViaWorkerFactory at 8                Normal
0000000000001111           0

Unflagged                           3648       0              Worker Thread
CDeviceEnumerator::PnpNotificationThreadWrapper
_NtWaitForMultipleObjects at 20               Normal 0000000000001111
0

Unflagged                           3772       0              Worker Thread
thread_start      mono_sem_timedwait Normal 0000000000001111
0

Unflagged                           4188       0              Worker Thread
Win32 Thread    _ZwWaitForSingleObject at 12     Normal
0000000000001111           0

Unflagged                           4948       0              Worker Thread
thread_start      mono_jit_runtime_invoke          Normal
0000000000001111           0

Unflagged                           5708       0              Worker Thread
thread_start
ves_icall_System_Threading_WaitHandle_WaitOne_internal     Normal
0000000000001111           0

Unflagged                           5936       0              Worker Thread
Win32 Thread    _ZwWaitForSingleObject at 12     Normal
0000000000001111           0

Unflagged                           6092       0              Worker Thread
_TppWaiterpThread at 4                _NtWaitForMultipleObjects at 20
Normal 0000000000001111           0

Unflagged                           6132       0              Worker Thread
thread_start      monitor_thread               Normal 0000000000001111
0

Unflagged                           6276       0              Main Thread
Main Thread      mono_get_lmf_addr     Normal 0000000000001111
0

Unflagged                           6364       0              Worker Thread
_threadstartex _callthreadstartex           Normal 0000000000001111
0

Unflagged                           6980       0              Worker Thread
_TppWorkerThread at 4 _ZwWaitForWorkViaWorkerFactory at 8                Normal
0000000000001111           0

Unflagged                           7012       0              Worker Thread
__endthread     _ZwWaitForSingleObject at 12     Time Critical
0000000000001111           0

Unflagged                           7032       0              Worker Thread
thread_start
ves_icall_System_Threading_WaitHandle_WaitOne_internal     Normal
0000000000001111           0

Unflagged                           7220       0              Worker Thread
thread_start
ves_icall_System_Threading_WaitHandle_WaitOne_internal     Normal
0000000000001111           0

Unflagged                           7384       0              Worker Thread
CThread::ThreadStartRoutine    _NtWaitForMultipleObjects at 20
Time Critical        0000000000001111           0

Unflagged                           7520       0              Worker Thread
_TppWorkerThread at 4 _ZwWaitForWorkViaWorkerFactory at 8                Normal
0000000000001111           0

Unflagged                           7564       0              Worker Thread
CThread::ThreadStartRoutine    _NtWaitForMultipleObjects at 20
Time Critical        0000000000001111           0

Unflagged                           7644       0              Worker Thread
thread_start      mono_sem_timedwait Normal 0000000000001111
0

Unflagged                           7744       0              Worker Thread
_TppWorkerThread at 4 _ZwWaitForWorkViaWorkerFactory at 8                Normal
0000000000001111           0

Unflagged                           7896       0              Worker Thread
thread_start
ves_icall_System_Threading_WaitHandle_WaitOne_internal     Normal
0000000000001111           0

Unflagged                           7904       0              Worker Thread
thread_start
ves_icall_System_Threading_WaitHandle_WaitOne_internal     Normal
0000000000001111           0

Unflagged                           8040       0              Worker Thread
CThread::ThreadStartRoutine    _NtWaitForMultipleObjects at 20
Time Critical        0000000000001111           0

Unflagged                           8112       0              Worker Thread
DllRefCountSafeThreadThunk    _NtWaitForMultipleObjects at 20
Normal 0000000000001111           0

Unflagged           >             8172       0              Worker Thread
_threadstartex _callthreadstartex           Normal 0000000000001111
0

 

 

Any ideas? I can provide a dump if anyone wants to help. We are releasing
tomorrow L. No choice here.

 

How can we know reason for this int 3

 

Thanks,

Jo.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20111005/2e6ff5a8/attachment-0001.html 


More information about the Mono-devel-list mailing list