After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 158157 - g_thread_init() from the pixbuf loader causing gdk-pixbuf-query-modules to crash
g_thread_init() from the pixbuf loader causing gdk-pixbuf-query-modules to crash
Status: RESOLVED FIXED
Product: librsvg
Classification: Core
Component: general
unspecified
Other Linux
: Normal critical
: ---
Assigned To: librsvg maintainers
librsvg maintainers
Depends on: 158177
Blocks:
 
 
Reported: 2004-11-13 10:37 UTC by Mark McLoughlin
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gdk-pixbuf-query-loaders stack trace (2.33 KB, text/plain)
2004-11-13 10:39 UTC, Mark McLoughlin
Details

Description Mark McLoughlin 2004-11-13 10:37:55 UTC
The recent change to make gnome_vfs_init() be called from rsvg_init() seems to
be causing gdk-pixbuf-query-loaders to crash - at least, reverting that change
makes the problem go away. See attached stack trace.

Seems not to be caused by recent changes to make gdk-pixbuf threadsafe
(reverting that patch doesn't help).

This causes the build to fail on make install in librsvg and corrupts loaders list.
Comment 1 Mark McLoughlin 2004-11-13 10:39:04 UTC
Created attachment 33727 [details]
gdk-pixbuf-query-loaders stack trace
Comment 2 Dan Winship 2004-11-13 16:11:44 UTC
If the patch in bug 158177 is accepted, then this can be fixed by doing:

Index: io-svg.c
===================================================================
RCS file: /cvs/gnome/librsvg/gdk-pixbuf-loader/io-svg.c,v
retrieving revision 1.21
diff -u -r1.21 io-svg.c
--- io-svg.c    12 Nov 2004 16:56:09 -0000      1.21
+++ io-svg.c    13 Nov 2004 16:03:27 -0000
@@ -199,6 +199,7 @@
 fill_vtable (GdkPixbufModule *module)
 {
         rsvg_init ();
+        g_module_make_resident (module->module);

         module->begin_load     = gdk_pixbuf__svg_image_begin_load;
         module->stop_load      = gdk_pixbuf__svg_image_stop_load;


If that patch is not accepted, then you could kludge around it by wrapping
an "if (module->module) { ... }" around those two lines, so that rsvg_init()
wouldn't get called in the query-loaders case (which is fine, since it
doesn't actually do any rsvg work in that case).
Comment 3 Dominic Lachowicz 2004-11-13 16:22:13 UTC
i'll just back out that line for now. the gdk pixbuf module loaders really need
proper init_module() and cleanup_module() functions.