GNOME Bugzilla – Bug 663122
Doesn't quit on exit with GLib's git master
Last modified: 2013-09-13 01:08:03 UTC
I just started evolution (today's git/master). Shortly after the UI mapped, I exited it by pressing ctrl-c. The UI disappears, but evo still keeps running in the background (for at least 5 min, in the latest test). I attached gdb and got the following backtrace: (gdb) thread apply all bt full
+ Trace 228956
After upgrading to the git master, running evolution from a console, and trying to close it by hitting "x" on the window border, evo hung. Here's another backtrace: (gdb) thread apply all bt full
+ Trace 229172
Those backtraces are pretty similar. Is it possible this is about used version of glib or gtk3? The threads are mostly in idle: Thread 1 in gtk_main() called from evolution's main.c Thread 2 in gdbus_shared_thread_func() from GDBus Thread 3 in dconf_context_thread() from dconfcontext Thread 4 in glib_worker_main() from gmain.c The last one is new to me. Could you try whether gtk_main_quit() is called, please? I woud run evolution under gdb in offline, let it settle (no actions shown in the status bad) and then quit evolution as you usually do? I would do it with a command like this: $ gdb evolution --ex "b gtk_main_quit" --ex "r --offline" Mine is called when evolution destroys its main window: (gdb) bt
+ Trace 229189
Hi Milan, I tried your suggestion. Interestingly, the break in gtk_main_quit never gets triggered. Hitting ^C gets me back to the gdb prompt and I got a backtrace. Here's a log: gdb evolution --ex "b gtk_main_quit" -ex "r --offline" Starting program: /opt/garnome-svn-3.2.0/bin/evolution --offline [Thread debugging using libthread_db enabled] [New Thread 0xb5f97b70 (LWP 7773)] [New Thread 0xb576fb70 (LWP 7774)] [New Thread 0xb4dffb70 (LWP 7775)] [New Thread 0xa511cb70 (LWP 7781)] [Thread 0xa511cb70 (LWP 7781) exited] [New Thread 0xa511cb70 (LWP 7782)] [New Thread 0xa44d0b70 (LWP 7790)] [New Thread 0xa3cd0b70 (LWP 7791)] [Thread 0xa3cd0b70 (LWP 7791) exited] [Thread 0xa511cb70 (LWP 7782) exited] [New Thread 0xa511cb70 (LWP 7792)] [New Thread 0xa3cd0b70 (LWP 7793)] [New Thread 0xa2effb70 (LWP 7794)] [Thread 0xa44d0b70 (LWP 7790) exited] [Thread 0xa2effb70 (LWP 7794) exited] [New Thread 0xa2effb70 (LWP 7801)] [New Thread 0xa44d0b70 (LWP 7802)] [New Thread 0xa1fffb70 (LWP 7803)] [Thread 0xa44d0b70 (LWP 7802) exited] [Thread 0xa511cb70 (LWP 7792) exited] [Thread 0xa1fffb70 (LWP 7803) exited] [Thread 0xa2effb70 (LWP 7801) exited] [Thread 0xa3cd0b70 (LWP 7793) exited] ^C Program received signal SIGINT, Interrupt. 0xb620977c in poll () from /lib/libc.so.6 (gdb) thread apply all bt full
+ Trace 229195
Thanks for the update. After some investigation I realized that this is broken after (incomplete) changes in bug #658805, which touched both GLib and gtk.
Created attachment 202580 [details] [review] proposed evo patch for evolution; Could you try with this workaround, please? It may work, but one never knows, these days.
The patch works here too. Thanks Milan.
Thanks for testing. Created commit 217c83b in evo master (3.3.3+)