GNOME Bugzilla – Bug 683548
Hang on start of Evolution
Last modified: 2012-09-10 08:44:50 UTC
I just got this hang on start of evolution. The main thread is blocked in libsoup. See the other threads too. This is with: libsoup-2.38.1-1.fc17.x86_64 glib2-2.32.4-1.fc17.x86_64 gtk3-3.4.4-1.fc17.x86_64 webkitgtk3-1.8.1-2.fc17.x86_64
+ Trace 230816
Thread 6 (Thread 0x7ff008906700 (LWP 1783))
This might actually be related to bug 674885, which I found out about yesterday and have seen manifest in a number of different ways.
this is slightly different from 674885, in that each of the two class_init functions is creating an instance of another object, which someone somewhere claimed is illegal. Though the suggested fix in 674885 (getting rid of class_init_rec_mutex) would probably fix this anyway...
(In reply to comment #2) > this is slightly different from 674885, in that each of the two class_init > functions is creating an instance of another object Actually, that's not true; only the webkit thread is. Filed https://bugs.webkit.org/show_bug.cgi?id=96105. For now (or if they can't manage to fix webkitInit() before 3.6) your best bet is probably to g_type_ensure(WEBKIT_TYPE_WEBVIEW) before any other threads are started.
Note, Evolution 3.6 is only requiring GLib 2.32. g_type_ensure() is new in GLib 2.33, but you can achieve the same effect with something like: g_type_class_unref (g_type_class_ref (WEBKIT_TYPE_WEBVIEW))
Because I have quite bad experience with the Webkit upstream, then I made a workaround in Evolution, commit a276c7c (3.5.92+). I also mimic g_type_ensure(), as it seemed better to me.