GEN gdk-pixbuf-loaders make[2]: *** [gdk-pixbuf-loaders] Error 134 make[2]: *** Waiting for unfinished jobs.... io-svg.c: In function 'gdk_pixbuf__svg_image_load_increment': io-svg.c:127:17: warning: 'rsvg_handle_set_size_callback' is deprecated (declared at ../rsvg.h:205) make[2]: Leaving directory `/var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf-loader' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0' make: *** [all] Error 2
Created attachment 309119 [details] build log
Created attachment 309121 [details] emerge --info
(In reply to comment #0) > GEN gdk-pixbuf-loaders > make[2]: *** [gdk-pixbuf-loaders] Error 134 > make[2]: *** Waiting for unfinished jobs.... > io-svg.c: In function 'gdk_pixbuf__svg_image_load_increment': > io-svg.c:127:17: warning: 'rsvg_handle_set_size_callback' is deprecated > (declared at ../rsvg.h:205) > make[2]: Leaving directory > `/var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf- > loader' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory > `/var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0' > make: *** [all] Error 2 emerge -pqv =gnome-base/librsvg-2.36.0 [ebuild U ] gnome-base/librsvg-2.36.0 [2.34.2] USE="gtk introspection -doc -tools (-gtk3%*)"
Please do the following: cd /var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf-loader gdk-pixbuf-query-loaders ./libpixbufloader-svg.la gdk-pixbuf-query-loaders What do the two gdk-pixbuf-query-loaders commands output? Do they print any errors?
(In reply to comment #4) > Please do the following: > > cd > /var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf- > loader > > gdk-pixbuf-query-loaders ./libpixbufloader-svg.la > gdk-pixbuf-query-loaders > > > What do the two gdk-pixbuf-query-loaders commands output? Do they print any > errors? gentoo ~ # cd /var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf-loader gentoo gdk-pixbuf-loader # gdk-pixbuf-query-loaders ./libpixbufloader-svg.la g_module_open() failed for /var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf-loader/./libpixbufloader-svg.la: /var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf-loader/./libpixbufloader-svg.la: cannot open shared object file: No such file or directory # GdkPixbuf Image Loader Modules file # Automatically generated file, do not edit # Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.26.1 # gentoo gdk-pixbuf-loader # gdk-pixbuf-query-loaders GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. Aborted gentoo gdk-pixbuf-loader #
Thanks. What version of dev-libs/glib and x11-libs/gdk-pixbuf are you using? If you are using an older version of gdk-pixbuf, could you please update to x11-libs/gdk-pixbuf-2.26.1 and see if the issue still persists?
(In reply to comment #6) > What version of dev-libs/glib and x11-libs/gdk-pixbuf are you using? dev-libs/glib-2.32.1 was built with the following: USE="fam (multilib) -debug -doc (-selinux) -static-libs -systemtap -test -utils -xattr" x11-libs/gdk-pixbuf-2.26.1 was built with the following: USE="X introspection jpeg (multilib) tiff -debug -doc -jpeg2k -test" > > If you are using an older version of gdk-pixbuf, could you please update to > x11-libs/gdk-pixbuf-2.26.1 and see if the issue still persists? I'm already using gdk-pixbuf-2.26.1 as stated above. Thanks for the clear instructions so far in trying to get to the root of this problem.
I also have this issue. [ebuild U ] gnome-base/librsvg-2.36.0 [2.34.2] USE="doc gtk introspection -tools (-gtk3%)"
Created attachment 309623 [details] emerge --info
Created attachment 309625 [details] build log
[ebuild R ~] dev-libs/glib-2.32.1 USE="doc fam -debug (-selinux) -static-libs -systemtap -test -utils -xattr" 0 kB [ebuild R ~] x11-libs/gdk-pixbuf-2.26.1 USE="X doc introspection jpeg tiff -debug -jpeg2k -test" 0 kB $pwd /var/tmp/portage/gnome-base/librsvg-2.36.0/work/librsvg-2.36.0/gdk-pixbuf-loader $ make GEN gdk-pixbuf-loaders make: *** [gdk-pixbuf-loaders] Error 134 $ gdk-pixbuf-query-loaders GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. Aborted $ gdk-pixbuf-query-loaders libpixbufloader-svg.la >>> See attachment
Created attachment 309627 [details] gdk-pixbuf-query-loaders ./libpixbufloader-svg.la
Hello! I did some debugging and found something out. As you might already have figured out here is that x11-libs/gdk-pixbuf is the culprit that causes this problem. So I downloaded the source of gdk-pixbuf-2.26.1 and made some experiments (not using portage, just plain configure+make) which led to the conclusion that these commands: ./configure --libdir=/usr/lib64 make yield a bad gdk-pixbuf-query-loaders causing this error: GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. Aborted But these commands: ./configure make produce a working gdk-pixbuf-query-loaders executable producing this output: # GdkPixbuf Image Loader Modules file # Automatically generated file, do not edit # Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.26.1 # # LoaderDir = /usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders # Gentoo appends the "--libdir=/usr/lib64" surely because we always want to point to our already installed libraries etc. But for the x11-libs/gdk-pixbuf package this leads to our problem. I will attach two logfiles, one showing the output of the configure+make leoding to the bad executable and the other one leading to the good executable. I cannot figure out anything else at the moment so I hope someone else can make sense out of this and come up with a fix. Thanks!
Created attachment 309661 [details] Logfile using the commands " configure --libdir=/usr/lib64 && make "
Created attachment 309663 [details] Logfile using the commands " configure && make "
I suspect that this bug might be caused by a threading problem not in gdk-pixbuf itself, but in some other package that installs a gdk-pixbuf module. If you are experiencing this bug, please attach the output of the following command: equery belongs gdk-pixbuf-2.0/2.10.0 (If you don't have equery, you will need to install app-portage/gentoolkit)
Here is the output of the command on my machine: $ equery belongs gdk-pixbuf-2.0/2.10.0 * Searching for gdk-pixbuf-2.0/2.10.0 ... app-emulation/emul-linux-x86-gtklibs-20120127 (/usr/lib32/gdk-pixbuf-2.0/2.10.0) gnome-base/librsvg-2.34.2 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) media-libs/libopenraw-0.0.9 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) media-libs/libwmf-0.2.8.4-r4 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) x11-libs/gdk-pixbuf-2.26.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0)
Same problem here: #gdk-pixbuf-query-loaders GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. Abandon #equery belongs gdk-pixbuf-2.0/2.10.0 * Searching for gdk-pixbuf-2.0/2.10.0 ... app-emulation/emul-linux-x86-gtklibs-20120127 (/usr/lib32/gdk-pixbuf-2.0/2.10.0) gnome-base/librsvg-2.36.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) media-libs/libopenraw-0.0.9 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) media-libs/libwmf-0.2.8.4-r4 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) x11-libs/gdk-pixbuf-2.26.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) Something else: #mv /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so ~ #gdk-pixbuf-query-loaders # GdkPixbuf Image Loader Modules file # Automatically generated file, do not edit # Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.26.1 # # LoaderDir = /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders # "/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-wbmp.so" "wbmp" 4 "gdk-pixbuf" "The WBMP image format" "LGPL" "image/vnd.wap.wbmp" "" [...] "/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ras.so" "ras" 4 "gdk-pixbuf" "The Sun raster image format" "LGPL" "image/x-cmu-raster" "image/x-sun-raster" "" "ras" "" "Y\246j\225" "" 100
1. Is anyone who is experiencing this bug *not* using an Nvidia card? 2. Does the following command work? __GL_SINGLE_THREADED=1 gdk-pixbuf-query-loaders
(In reply to comment #19) By "work", I mean doesn't complain about "Unexpected error from C library"
No such luck. Still unexpected error from C library, pthread_setspecific error.
$ equery belongs gdk-pixbuf-2.0/2.10.0 gnome-base/librsvg-2.36.0 media-libs/libwmf-0.2.8.4-r4 x11-libs/gdk-pixbuf-2.26.1
1. I'm using nvidia 2. __GL_SINGLE_THREADED=1 gdk-pixbuf-query-loaders does not work
1) Using nvidia. 2) __GL_SINGLE_THREADED=1 does not help 3) equery b gdk-pixbuf-2.0/2.10.0 * Searching for gdk-pixbuf-2.0/2.10.0 ... gnome-base/librsvg-2.34.2 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) x11-libs/gdk-pixbuf-2.26.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0)
(In reply to comment #19) > 1. Is anyone who is experiencing this bug *not* using an Nvidia card? > I do not have an Nvidia card. I'm running Gentoo as a guest in Virtualbox. > 2. Does the following command work? > > __GL_SINGLE_THREADED=1 gdk-pixbuf-query-loaders No. GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. Aborted
> I suspect that this bug might be caused by a threading problem not in > gdk-pixbuf itself, but in some other package that installs a gdk-pixbuf > module. If you are experiencing this bug, please attach the output of the > following command: > > equery belongs gdk-pixbuf-2.0/2.10.0 * Searching for gdk-pixbuf-2.0/2.10.0 ... gnome-base/librsvg-2.34.2 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) x11-libs/gdk-pixbuf-2.26.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0)
I'm having the exact same error on my hand. Unable to update the package.
I have the same error too.
equery belongs gdk-pixbuf-2.0/2.10.0 * Searching for gdk-pixbuf-2.0/2.10.0 ... app-emulation/emul-linux-x86-gtklibs-20110928 (/usr/lib32/gdk-pixbuf-2.0/2.10.0) gnome-base/librsvg-2.36.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) media-libs/libwmf-0.2.8.4-r4 (/usr/lib64/gdk-pixbuf-2.0/2.10.0) x11-libs/gdk-pixbuf-2.26.1 (/usr/lib64/gdk-pixbuf-2.0/2.10.0)
I have build librsvg by first emerging with --nodeps gdk-pixbuf-2.24.1 (it is unbroken), then I used this version to emerge librsvg. But since I have installed gtk+-3.4 I had to update to the gdk-pixbuf-2.26.1.
I debugged this problem with noobermin over IRC, and it appears that it is being caused by a bad pthread_key_delete() call in QtCore when the rsvg gdk-pixbuf module is being unloaded and that happens if cairo was built with the Qt surface backend enabled. (Almost every core graphics library on your system is involved here!) If gdk-pixbuf-query-loaders is crashing for you: 1. Do you have x11-libs/cairo installed with USE=qt4? 2. Does re-emerging x11-libs/cairo with USE=-qt4 fix the crash?
(In reply to comment #31) > If gdk-pixbuf-query-loaders is crashing for you: > 1. Do you have x11-libs/cairo installed with USE=qt4? > 2. Does re-emerging x11-libs/cairo with USE=-qt4 fix the crash? I just ran into this problem today. Reinstalling cairo without qt4 works for me for emerging gnome-base/librsvg-2.36.1.
Fantastic! Emerging x11-libs/cairo with -qt4 works for me too! Not sure if I need cairo with qt4 support anyway so this is a great workaround for now! Thank you!
re-emerging x11-libs/cairo with USE=-qt4 fix the crash
(In reply to comment #34) > re-emerging x11-libs/cairo with USE=-qt4 fix the crash I can also confirm that this resolves my issue as well.
Reassigning to cairo maintainers. (Note that I am still unable to reproduce the gdk-pixbuf-query-loaders crash on my system after rebuilding cairo with USE=qt4, so there is probably some additional factor that is required for the crash to occur.) @x11, @qt, here are my findings so far: The crash only occurs when librsvg's gdk-pixbuf module is installed and when cairo is built with USE=qt4. The pthread_setspecific() EINVAL occurs after gdk-pixbuf-query-loaders finishes processing the rsvg module and loads the next one. A pthread_setspecific() EINVAL typically results from a call to pthread_key_delete() that deletes the key that pthread_setspecific() wants to use. Noobermin, a user who was experiencing this bug, debugged gdk-pixbuf-query-loaders with a breakpoint at pthread_key_delete and got only one hit before terminating with the pthread_setspecific() EINVAL: Breakpoint 1, 0x00007ffff76a1800 in pthread_key_delete () from /lib64/libpthread.so.0 (gdb) thread apply all bt full Thread 1 (Thread 0x7ffff7fb1700 (LWP 8223)): #0 0x00007ffff76a1800 in pthread_key_delete () from /lib64/libpthread.so.0 No symbol table info available. #1 0x00007ffff733aaf5 in __cxa_finalize () from /lib64/libc.so.6 No symbol table info available. #2 0x00007ffff2e447a6 in ?? () from /usr/lib64/qt4/libQtCore.so.4 No symbol table info available. #3 0x00007fffffffd630 in ?? () No symbol table info available. #4 0x0000000000000000 in ?? () No symbol table info available. So this seems to be some sort of threading misinteraction between librsvg's gdk-pixbuf module, cairo, and cairo's qt surface backend.
This reminds me of bug #356845, that was fixed in Qt 4.8.0 and later. Which version of x11-libs/qt-core do you have installed?
x11-libs/qt-core-4.7.4-r1
(In reply to comment #37) > This reminds me of bug #356845, that was fixed in Qt 4.8.0 and later. Which > version of x11-libs/qt-core do you have installed? Thanks a lot Davide. That fixes it for me. I installed both cairo and qt from ~amd64 and re-installed gdk-pixbuf and librsvg. Works like a charm!
(In reply to comment #37) > This reminds me of bug #356845 Thanks, that would certainly explain the symptoms. @x11, I think the proper solution in this case is to change cairo-1.10.2-r2's rdepend to qt4? ( >=x11-libs/qt-gui-4.8:4 ) and add "<x11-libs/cairo-1.10.2-r2 qt4" to package.use.mask. Most of cairo's consumers use glib, and having cairo link to a version of qt-core that is known to randomly delete glib's pthread keys is IMHO not a good thing.
(In reply to comment #40) > @x11, I think the proper solution in this case is to change > cairo-1.10.2-r2's rdepend to > > qt4? ( >=x11-libs/qt-gui-4.8:4 ) > > and add "<x11-libs/cairo-1.10.2-r2 qt4" to package.use.mask. > > Most of cairo's consumers use glib, and having cairo link to a version of > qt-core that is known to randomly delete glib's pthread keys is IMHO not a > good thing. Agreed. (BTW, there are no packages requiring x11-libs/cairo[qt4] in the tree)
recompiling cairo without the qt4 flag fixed my problem. I can compile gdk-pixbuf and librsvg-2.36.1 without issues.
Same here. It also seems to fix getting kicking off to the login screen randomly. Good deal!
Additionally, I propose to default to -qt4 in IUSE for all cairo versions currently in the tree.
qt4 flag has been masked for <cairo-1.12 per comment 40.
(In reply to comment #45) > qt4 flag has been masked for <cairo-1.12 per comment 40. Please also raise the qt-gui dependency to 4.8 in cairo-1.12.x, then this bug can be marked closed.
Done. Thank you all! 02 May 2012; Davide Pesavento <pesa@gentoo.org> cairo-1.10.2-r1.ebuild, cairo-1.10.2-r2.ebuild, cairo-1.12.0.ebuild, cairo-1.12.2.ebuild, cairo-9999.ebuild: Raise qt-gui dependency to >=4.8 wrt bug 412177.
*** Bug 411987 has been marked as a duplicate of this bug. ***