Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 178493 - apps that use libXrender and/or libXft crash with segmentation fault after switching to new profile
Summary: apps that use libXrender and/or libXft crash with segmentation fault after sw...
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-14 10:43 UTC by Sebastian Schlüter
Modified: 2008-10-30 12:23 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sebastian Schlüter 2007-05-14 10:43:57 UTC
I'm running a stable (x86) system and have recently switched to profile 2007.0-desktop. Several default USE flags have changed, and so I re-emerged the affected packages. Now it seems that all applications that use libXrender imnedialtely crash when started. xclock is probably the easiest example.

I have already tried to solve the problem by re-emerging all packages that xclock depends on via "emerge --emptytree xclock" but xclock still crashes.





Reproducible: Always

Steps to Reproduce:
just run xclock
Actual Results:  
Segmentation fault

Expected Results:  
xclock should not crash

# etc-update
Scanning Configuration files...
Exiting: Nothing left to do; exiting. :)


# emerge --ask --verbose --update --deep world

These are the packages that would be merged, in order:

Calculating world dependencies... done!

Total: 0 packages, Size of downloads: 0 kB

Nothing to merge; would you like to auto-clean packages? [Yes/No]
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.
 * GNU info directory index is up-to-date.


# emerge --ask --verbose --update --deep --newuse world

These are the packages that would be merged, in order:

Calculating world dependencies... done!

Total: 0 packages, Size of downloads: 0 kB

Nothing to merge; would you like to auto-clean packages? [Yes/No]
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.
 * GNU info directory index is up-to-date.


# emerge --ask --verbose --depclean

*** WARNING ***  Depclean may break link level dependencies.  Thus, it is
*** WARNING ***  recommended to use a tool such as `revdep-rebuild` (from
*** WARNING ***  app-portage/gentoolkit) in order to detect such breakage.
*** WARNING ***
*** WARNING ***  Also study the list of packages to be cleaned for any obvious
*** WARNING ***  mistakes. Packages that are part of the world set will always
*** WARNING ***  be kept.  They can be manually added to this set with
*** WARNING ***  `emerge --noreplace <atom>`.  Packages that are listed in
*** WARNING ***  package.provided (see portage(5)) will be removed by
*** WARNING ***  depclean, even if they are part of the world set.
*** WARNING ***
*** WARNING ***  As a safety measure, depclean will not remove any packages
*** WARNING ***  unless *all* required dependencies have been resolved.  As a
*** WARNING ***  consequence, it is often necessary to run
*** WARNING ***  `emerge --update --newuse --deep world` prior to depclean.

Calculating dependencies... done!

Packages installed:   1315
Packages in world:    803
Packages in system:   56
Unique package names: 1315
Required packages:    1315
Number removed:       0
 * GNU info directory index is up-to-date.


# revdep-rebuild -- --ask
Configuring search environment for revdep-rebuild

Checking reverse dependencies...

Packages containing binaries and libraries broken by a package update
will be emerged.

Collecting system binaries and libraries... done.
  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.
  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...
 done.
  (/root/.revdep-rebuild.3_rebuild)

Assigning files to ebuilds... Nothing to rebuild

Evaluating package order... done.
  (/root/.revdep-rebuild.5_order)

Dynamic linking on your system is consistent... All done.
Comment 1 Sebastian Schlüter 2007-05-14 10:44:41 UTC
# emerge --info
Portage 2.1.2.2 (default-linux/x86/2007.0/desktop, gcc-4.1.1, glibc-2.5-r2, 2.6.20.11n i686)
=================================================================
System uname: 2.6.20.11n i686 AMD Athlon(tm) XP 1600+
Gentoo Base System release 1.12.9
Timestamp of tree: Thu, 10 May 2007 19:29:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
dev-java/java-config: 1.3.7, 2.0.31-r5
dev-lang/python:     2.3.5-r3, 2.4.4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r7
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/php/apache1-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=athlon-xp -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg ccache distlocks metadata-transfer sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="de_DE@euro"
LINGUAS="de"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl acpi alsa apache2 arts bash-completion berkdb bitmap-fonts bzip2 cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam firefox flac fortran gdbm gif gnome gstreamer gtk hal iconv ipv6 isdnlog java jpeg kde kerberos ldap libg++ mad midi mikmod mp3 mpeg mysql ncurses nls nptl nptlonly ogg opengl oss pam pcre pdf perl png postgres pppd python qt3 qt3support qt4 quicktime readline reflection samba sdl session spell spl sqlite ssl svg tcpd tiff truetype truetype-fonts type1-fonts unicode vorbis win32codecs x86 xml xorg xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="apm ark ati chips cirrus cyrix dummy fbdev glint i128 i740 i810 imstt mga neomagic nsc nv rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware voodoo"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Sebastian Schlüter 2007-05-14 10:47:36 UTC
When I run xclock through gdb I get

$ gdb xclock
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/bin/xclock
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

Program received signal SIGSEGV, Segmentation fault.
0xb7dc5789 in XftDrawSrcPicture () from /usr/lib/libXft.so.2
(gdb) quit
The program is running.  Exit anyway? (y or n) y
Comment 3 Sebastian Schlüter 2007-05-14 10:51:30 UTC
When I run pidgin through gdb I get

$ gdb pidgin
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/bin/pidgin
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1221089088 (LWP 20664)]


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1221089088 (LWP 20664)]
0xb74695b9 in XRenderCreatePicture () from /usr/lib/libXrender.so.1
(gdb)
(gdb) quit
The program is running.  Exit anyway? (y or n) y
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2007-05-14 12:27:45 UTC
Sorry, but this gdb output is not useful. See http://www.gentoo.org/proj/en/qa/backtraces.xml on hints how to produce a more useful one.
Comment 5 Sebastian Schlüter 2007-05-15 23:33:29 UTC
OK, I have added "-ggdb" to my CFLAGS and "splitdebug" to FEATURES. After that I've issued the following commands:

emerge --emptytree system
emerge --emptytree --oneshot xclock

Here comes the requested backtrace:

$ gdb /usr/bin/xclock
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/bin/xclock

Program received signal SIGSEGV, Segmentation fault.
0xb7d26789 in XftDrawSrcPicture (draw=0x8071ae0, color=0x8066a84) at xftdraw.c:354
354     xftdraw.c: No such file or directory.
        in xftdraw.c
(gdb) bt
#0  0xb7d26789 in XftDrawSrcPicture (draw=0x8071ae0, color=0x8066a84) at xftdraw.c:354
#1  0x0804ac13 in RenderPrepare (w=0x8066620, color=0x8066a84) at Clock.c:769
#2  0x0804b595 in DrawClockFace (w=0x8066620) at Clock.c:995
#3  0x0804be2a in clock_tic (client_data=0x8066620, id=0x0) at Clock.c:1407
#4  0xb7d6d263 in SendExposureEvent (event=0xbffaf2fc, widget=0x8066620, pd=0x805e534) at Event.c:1120
#5  0xb7d6d727 in XtDispatchEventToWidget (widget=0x8066620, event=0xbffaf2fc) at Event.c:1020
#6  0xb7d6dddf in _XtDefaultDispatcher (event=0xbffaf2fc) at Event.c:1335
#7  0xb7d6ce3a in XtDispatchEvent (event=0xbffaf2fc) at Event.c:1415
#8  0xb7d6cfd4 in XtAppMainLoop (app=0x8055a70) at Event.c:1552
#9  0x0804d376 in main (argc=134543934, argv=0x0) at xclock.c:211
#10 0xb7b0883c in __libc_start_main (main=0x804d0a0 <main>, argc=1, ubp_av=0xbffaf464, init=0x804d530 <__libc_csu_init>,
    fini=0x804d520 <__libc_csu_fini>, rtld_fini=0xb7f35ee0 <_dl_fini>, stack_end=0xbffaf45c) at libc-start.c:238
#11 0x08049b61 in _start ()
(gdb) quit
The program is running.  Exit anyway? (y or n) y
Comment 6 Joshua Baergen (RETIRED) gentoo-dev 2007-05-16 22:43:49 UTC
Have you tried 'revdep-rebuild'?  When you rebuilt, did you disable ccache?
Comment 7 Sebastian Schlüter 2007-05-16 23:26:29 UTC
revdep-rebuild says "Dynamic linking on your system is consistent."

So I don't know which libraries need to be rebuilt let alone the correct rebuild sequence.

I have already tried

emerge -e system
emerge -e xlock

but that hasn't solved the problem.

My system ist headless and I'm running a VNC server (net-misc/vnc-4.1.2-r2) instead. 


Because of that I have also tried

emerge -e vnc

but this hasn't solved the problem either.

All those apps that immediately crash inside the vnc session work fine when run with X11 forwarding. 
Comment 8 Sebastian Schlüter 2007-05-16 23:34:27 UTC
I didn't disable ccache but cleared the entire cache prior to starting the rebuild process.
Comment 9 Sebastian Schlüter 2007-05-18 06:40:57 UTC
It have now figured out that the problem seems to be related to the colour depth of the vnc session. When I stick to a depth of 16 bits (instead of 24 bits), my apps no longer crash. 

Though I'm glad that I have found a workaround to my problem, I still consider this a bug because vnc sessions with a colour depth of 24 bits have worked ever since.
Comment 10 Martin Balaz 2007-06-06 10:27:04 UTC
Hello,

I have the same problems. I also tried to run vncserver with depth 16bit and it works.
Comment 11 Rémi Cardona (RETIRED) gentoo-dev 2008-10-30 12:23:33 UTC
Hi,

can either of you still reproduce this bug with newer versions of the libraries and of vnc?

Please don't hesitate to reopen this bug if you can still reproduce this on an updated system.

Thanks