Bugzilla – Bug 398548
GObject class init not thread-safe ...
Last modified: 2008-06-10 10:48:54 UTC
Soo ... this has been like this for a long time it seems; since 2001 - but recently, with more threadiness we've seen more issues with it. we should include the up-stream fix for this: 2008-02-05 18:52:07 Tim Janik <timj@imendio.com> * gtype.c: added recursive mutex to protect class initialization, default interface initialization and per-class interface construction. a lock to this recursive mutex is held during user callback invocations such as initializers or finalizers, effectively allowing only one thread to run class/interface initializers/finalizers at a time. also made misc fixups. this fixes: Bug 64764 - Class initialization isn't thread safe. which I will attach.
Created attachment 221032 [details] patch
*** Bug 385128 has been marked as a duplicate of this bug. ***
Extracted from up-stream master bug: http://bugzilla.gnome.org/show_bug.cgi?id=64764 bug 396848 - firefox / file-selector crash (?) related to this: various threads like to create GIconTheme structures concurrently - I see several of these each day on a dual CPU machine (on the console / .xsession-errors - usually just fairly benign warnings to be far ) Up-stream duplicates include an evolution-data-server crasher: http://bugzilla.gnome.org/show_bug.cgi?id=515802 and a libgsf crasher too. Of course, the patch is not completely trivial and comes from the unstable glib branch, I guess it needs some heavy petting before we're happy with it: perhaps a post 11.0 update (?).
Michael, did you test a package with this patch to see if the Firefox problem is fixed? Or should I build a test package for general consumption?
Errrr, that patch went into glib 2.15.5, and we ship glib 2.16.3 with openSUSE 11 --- so the patch is in.
great ! :-) so we have a new bug then - nice; Let me go & read my trace more carefully ...
invalid bug; closing & re-opening the original issue & re-titling that.