Description of problem: In certain circumstances, gtk_timeout_add() may trigger an infinite loop. Version-Release number of selected component (if applicable): gtk2-2.2.1-1 How reproducible: Sometimes. Steps to Reproduce: 1.run balsa. Try opening a large mailbox (over imap for better effect). 2.balsa will stop responding to clicking on mailbox index. Actual results: balsa will very likely stop responding to clicking on mailbox index (clicking o a message schedules an idle function that is not executed at all). Instead, balsa will use 100% in gtk2 code. Expected results: It should work as with older versions of gtk2 Additional info: What is crucial here is that I strongly _suspect_ it is not balsa problem since it works just fine on RH8.0, and I seem to recall phoebe-2 did not have this problem neither. But of course, I am not sure. Any hints how to debug it will be very appreciated. All the relevant idle functions return false. See http://bugzilla.gnome.org/show_bug.cgi?id=106311 for original report. The stack trace is: #1 0x40fd4a17 in _XRead () from /usr/X11R6/lib/libX11.so.6 #2 0x40fd555d in _XReply () from /usr/X11R6/lib/libX11.so.6 #3 0x40fcb37b in XQueryPointer () from /usr/X11R6/lib/libX11.so.6 #4 0x40b23779 in _gdk_windowing_window_get_pointer () from /usr/lib/libgdk-x11-2.0.so.0 #5 0x40affcad in gdk_window_get_pointer () from /usr/lib/libgdk-x11-2.0.so.0 #6 0x40a15e87 in gtk_tree_view_get_type () from /usr/lib/libgtk-x11-2.0.so.0 #7 0x40951caf in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0 #8 0x40bd5247 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0 #9 0x40bd4ed7 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #10 0x40be7439 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0 #11 0x40be67af in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #12 0x40be6be4 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #13 0x40a3785b in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0 #14 0x4095077c in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #15 0x40afedc5 in gdk_window_clear_area_e () from /usr/lib/libgdk-x11-2.0.so.0 #16 0x40afee6a in gdk_window_process_all_updates () from /usr/lib/libgdk-x11-2.0.so.0 #17 0x40afeed1 in gdk_window_process_all_updates () from /usr/lib/libgdk-x11-2.0.so.0 #18 0x40c2a743 in g_timeout_add () from /usr/lib/libglib-2.0.so.0 #19 0x40c27b35 in g_get_current_time () from /usr/lib/libglib-2.0.so.0 #20 0x40c28b78 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #21 0x40c28e8d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #22 0x40c2958f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #23 0x4094ffdf in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #24 0x0808b14d in main (argc=1, argv=0xbffff3a4) at main.c:433
As far as I can recall, nothing has changed in this area of GLib since before 2.0.0. But this might be a known TreeView problem with infinite expose loops. Think so, Jonathan?
It's possible. I haven't committed that fix yet, but will do so shortly. Can you try the attachment and tell me if it helps you?
Created attachment 90407 [details] scroll fix.
It seems the fix is right! I have some combinations of mailbox opening sequences that always led to this problem but now, I cannot reproduce it any more.
Cool. I'll close this after I commit that patch.