GNOME Bugzilla – Bug 566101
cpu stuck running in gdk_event_get_graphics_expose
Last modified: 2017-08-22 23:32:46 UTC
stuck and eating all the cpu in pidgin 2.5.3(hich uses GTK 2.12.12a) under XP, which happens about daily for me, triggered by anything that effects the GUI with increased likelyhood the longer it's been running. The unchanging part of the stack as learned from procexp is: libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3973 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49
Some other stack traces (tough all fall below the aforementioned trace): ntdll.dll!KiFastSystemCallRet libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3894 USER32.dll!GetDC+0x6d USER32.dll!GetDC+0x14f USER32.dll!GetWindowLongW+0x127 USER32.dll!DispatchMessageW+0xf libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x398d libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49 USER32.dll!PeekMessageW+0x117 USER32.dll!PeekMessageW+0x167 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3973 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49 ntdll.dll!KiFastSystemCallRet libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3894 USER32.dll!GetDC+0x6d USER32.dll!GetDC+0x14f USER32.dll!GetWindowLongW+0x127 USER32.dll!DispatchMessageW+0xf libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x398d libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49 libglib-2.0-0.dll!g_hash_table_lookup+0x30 libgdk-win32-2.0-0.dll!gdk_win32_handle_table_lookup+0x23 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x31f libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3894 USER32.dll!GetDC+0x6d USER32.dll!GetDC+0x14f USER32.dll!GetWindowLongW+0x127 USER32.dll!DispatchMessageW+0xf libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x398d libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49 ntdll.dll!KiUserCallbackDispatcher USER32.dll!PeekMessageW+0x167 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3973 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49 libglib-2.0-0.dll!g_hash_table_lookup+0x23 libgdk-win32-2.0-0.dll!gdk_win32_handle_table_lookup+0x23 libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x31f libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3894 USER32.dll!GetDC+0x6d USER32.dll!GetDC+0x14f USER32.dll!GetWindowLongW+0x127 USER32.dll!DispatchMessageW+0xf libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x398d libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b0d 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!RegisterWaitForInputIdle+0x49
Pidgin will still continue doing things in the same thread, though in a very delayed manner, so either Pidgin is calling GTK almost constantly, or GTK is taking a far greater amount of CPU than it should. I'll post debug output soon.
This only happens when pidgin's notify.dll is loaded, more details here: http://developer.pidgin.im/ticket/5583 I can't say for sure if it's a GTK or pidgin problem. I'm told that since pidgin can still create, destroy, and update the titles of new windows, and also reconnect to servers, join chatrooms, and log chats, despite the UI being unusable, that the calls to GTK must be returning, so if that's true then GTK is either just taking too long or pidgin is calling it too much.
Are you still having this issue with a recent version of GTK and pidgin?
Yup, is this still an issue? Thanks in advance.
There had been no additional comments/bug reports in 4 years when first asked for this to be retested, and nothing again in the 4 years since. I'm resolving the bug as obsolete since the software has changed a lot since the initial bug report. A new bug can be filed if this is still an issue.