[Pidgin] #7849: WinPidgin Hangs in Network Location Awareness Thread at Exit

Pidgin trac at pidgin.im
Tue Dec 30 03:23:35 EST 2008


#7849: WinPidgin Hangs in Network Location Awareness Thread at Exit
---------------------------+------------------------------------------------
 Reporter:  Hannes Rannes  |        Owner:  datallah       
     Type:  patch          |       Status:  new            
Milestone:                 |    Component:  winpidgin (gtk)
  Version:  2.5.3          |   Resolution:                 
 Keywords:  exit hang      |  
---------------------------+------------------------------------------------

Comment(by dtfinch):

 Stack traces from Process Explorer for each thread, the first being the
 one with high cpu usage while it was frozen, with the patched dll. Running
 Vista SP1.

 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForSingleObject+0x492
 ntkrnlpa.exe!PsGetCurrentThreadTeb+0x377
 hal.dll!KfRaiseIrql+0xd1
 hal.dll!KeRaiseIrqlToSynchLevel+0x70
 hal.dll!HalEndSystemInterrupt+0x73
 hal.dll!HalInitializeProcessor+0xcc1
 ntdll.dll!KiFastSystemCallRet
 kernel32.dll!Sleep+0xf
 NLAapi.dll!NlaRegisterQuery+0x4a9f
 WS2_32.DLL!WSAEnumProtocolsW+0x24e
 WS2_32.DLL!WSAEnumProtocolsW+0x217
 WS2_32.DLL!socket+0x1a1
 WS2_32.DLL!WahEnumerateHandleContexts+0x1f0
 WS2_32.DLL!WahEnumerateHandleContexts+0x11d
 libpurple.dll!wpurple_cleanup+0x20
 libpurple.dll!purple_core_quit+0xea
 libgobject-2.0-0.dll!g_closure_invoke+0x115
 libgobject-2.0-0.dll!g_signal_has_handler_pending+0xf55
 libgobject-2.0-0.dll!g_signal_emit_valist+0x7fa
 libgobject-2.0-0.dll!g_signal_emit+0x26
 libgtk-win32-2.0-0.dll!gtk_widget_activate+0x9b
 libgtk-win32-2.0-0.dll!gtk_menu_shell_activate_item+0xec
 libgtk-win32-2.0-0.dll!gtk_menu_shell_activate_item+0x48a
 libgtk-win32-2.0-0.dll!gtk_marshal_VOID__UINT_STRING+0x142
 libgobject-2.0-0.dll!g_closure_invoke+0x115
 libgobject-2.0-0.dll!g_signal_has_handler_pending+0xb86
 libgobject-2.0-0.dll!g_signal_emit_valist+0x54c
 libgobject-2.0-0.dll!g_signal_emit+0x26
 libgtk-win32-2.0-0.dll!gtk_widget_activate+0x224
 libgtk-win32-2.0-0.dll!gtk_propagate_event+0xd1
 libgtk-win32-2.0-0.dll!gtk_main_do_event+0x261
 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b6e
 libglib-2.0-0.dll!g_main_context_dispatch+0x197
 libglib-2.0-0.dll!g_main_context_acquire+0x3db
 libglib-2.0-0.dll!g_main_loop_run+0x17a
 libgtk-win32-2.0-0.dll!gtk_main+0x9e
 pidgin.dll!pidgin_main+0x481
 pidgin.exe+0x23ec
 pidgin.exe+0x2a4a
 pidgin.exe+0x1247
 pidgin.exe+0x12b8
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}

 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForSingleObject+0x492
 ntkrnlpa.exe!NtWaitForSingleObject+0xc8
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 kernel32.dll!WaitForSingleObject+0x12
 NLAapi.dll!NlaRegisterQuery+0x443d
 WS2_32.DLL!WSANSPIoctl+0x1b4
 WS2_32.DLL!WSANSPIoctl+0x185
 WS2_32.DLL!WSANSPIoctl+0x121
 WS2_32.DLL!WSANSPIoctl+0x82
 libpurple.dll!purple_network_get_handle+0x1eb
 libglib-2.0-0.dll!g_static_private_free+0x325
 libgthread-2.0-0.dll+0x207f
 msvcrt.dll!wcstombs_s+0x40
 msvcrt.dll!beginthreadex+0xc9
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}

 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForSingleObject+0x492
 ntkrnlpa.exe!NtWaitForSingleObject+0xc8
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 kernel32.dll!WaitForSingleObject+0x12
 libpurple.dll!purple_whiteboard_set_brush+0x422
 msvcrt.dll!wcstombs_s+0x40
 msvcrt.dll!beginthreadex+0xc9
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}


 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForSingleObject+0x492
 ntkrnlpa.exe!NtWaitForSingleObject+0xc8
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 kernel32.dll!WaitForSingleObject+0x12
 libpurple.dll!purple_whiteboard_set_brush+0x422
 msvcrt.dll!wcstombs_s+0x40
 msvcrt.dll!beginthreadex+0xc9
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}


 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForSingleObject+0x492
 hal.dll!KfLowerIrql+0x64
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 WINMM.DLL+0x1515
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}

 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForMultipleObjects+0x540
 ntkrnlpa.exe!CcPreparePinWrite+0x2171
 ntkrnlpa.exe!CcPreparePinWrite+0x1ee0
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 wdmaud.drv!wodMessage+0x3e7
 wdmaud.drv!modMessage+0x273
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}

 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeWaitForMultipleObjects+0x540
 ntkrnlpa.exe!CcPreparePinWrite+0x2171
 ntkrnlpa.exe!CcPreparePinWrite+0x1ee0
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}

 {{{
 ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
 ntkrnlpa.exe!KeRemoveQueueEx+0x741
 ntkrnlpa.exe!NtSetEvent+0x2bf
 ntkrnlpa.exe!NtQueryInformationProcess+0x255c
 ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
 ntdll.dll!KiFastSystemCallRet
 RPCRT4.dll!UuidCreate+0xc6
 RPCRT4.dll!UuidCreate+0x166
 RPCRT4.dll!I_RpcSend+0x181
 RPCRT4.dll!I_RpcSend+0x148
 RPCRT4.dll!I_RpcSend+0x1ad
 kernel32.dll!BaseThreadInitThunk+0x12
 ntdll.dll!RtlInitializeExceptionChain+0x63
 ntdll.dll!RtlInitializeExceptionChain+0x36
 }}}

 I forgot to run procmon before closing pidgin, and it would have been
 awkward to log back in 10 minutes after saying good night to everyone. I
 ran procmon anyways while it was already frozen, in case it might catch
 something interesting happening in that infinite loop, but it didn't log
 anything for the include filter process name = pidgin.exe, and no other
 filters.

 There were no still-open connections according to TCPView.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/7849#comment:88>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list