gnome-settings-daemon crashed with SIGSEGV in dlopen_doit()

Bug #793678 reported by Rockwalrus
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
eglibc (Ubuntu)
Expired
Low
Unassigned
gnome-settings-daemon (Ubuntu)
Expired
Low
Unassigned

Bug Description

Binary package hint: gnome-settings-daemon

I've had gnome-settings-daemon crashing intermittently since Maverick, but after installing Natty I've found a way to crash it reproducibly. Apport does not produce a complete stacktrace because of bug #793292, so here is the relevant part of the stack trace:
#0 0x00007fa2ca2ef937 in elf_machine_rela (scope=0x1e31a90,
    reloc_mode=<value optimized out>, consider_profiling=0)
    at ../sysdeps/x86_64/dl-machine.h:295
#1 elf_dynamic_do_rela (scope=0x1e31a90, reloc_mode=<value optimized out>,
    consider_profiling=0) at do-rel.h:120
#2 _dl_relocate_object (scope=0x1e31a90, reloc_mode=<value optimized out>,
    consider_profiling=0) at dl-reloc.c:268
#3 0x00007fa2ca2f6db6 in dl_open_worker (a=0x7fff3acb07f0) at dl-open.c:339
#4 0x00007fa2ca2f2746 in _dl_catch_error (objname=0x7fff3acb0840,
    errstring=0x7fff3acb0838, mallocedp=0x7fff3acb084f,
    operate=0x7fa2ca2f6b30 <dl_open_worker>, args=0x7fff3acb07f0)
    at dl-error.c:178
#5 0x00007fa2ca2f73fa in _dl_open (file=0x7fa2c823b410 "libXcursor.so.1",
    mode=-2147483647, caller_dlopen=0x7fa2c7f213c2, nsid=-2, argc=2,
    argv=<value optimized out>, env=0x7fff3acb1720) at dl-open.c:555
#6 0x00007fa2c5c89f16 in dlopen_doit (a=0x7fff3acb0a10) at dlopen.c:67
#7 0x00007fa2ca2f2746 in _dl_catch_error (objname=0x1da32e0,
    errstring=0x1da32e8, mallocedp=0x1da32d8,
    operate=0x7fa2c5c89eb0 <dlopen_doit>, args=0x7fff3acb0a10)
    at dl-error.c:178
#8 0x00007fa2c5c8a52c in _dlerror_run (operate=0x7fa2c5c89eb0 <dlopen_doit>,
    args=0x7fff3acb0a10) at dlerror.c:164
#9 0x00007fa2c5c89fc1 in __dlopen (file=<value optimized out>,
    mode=<value optimized out>) at dlopen.c:88

The bad pointer seems to be supplied at frame #1, elf_dynamic_do_rela(), line 120 in file do-rel.h:
       elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)],
          &map->l_versions[ndx],
          (void *) (l_addr + r->r_offset));

map->l_versions is NULL, and ndx is 6, so the function is passed an invalid pointer with an address of 6 * sizeof(map->l_versions). Since there is a null check in the function being called, one possible solution is that the fourth parameter could be
    map->l_versions ? &map->l_versions[ndx] : NULL
but I'm not familiar enough with this code to know if that is the right thing to do. I'm especially curious about whether it's valid in the first place for ndx to be nonzero if l_versions is NULL.

Even though the library to be dlopened is libXcursor, the crash apparently happens while processing the link_map of libsndfile. I've verified that there is only one libsndfile on my machine, and debsums indicates that all the files in the libsndfile1 are unaltered, so it doesn't seem to be due to corruption on my machine.

ProblemType: Crash
DistroRelease: Ubuntu 11.04
Package: gnome-settings-daemon 2.32.1-0ubuntu13.1
ProcVersionSignature: Ubuntu 2.6.38-8.42~ppa3-generic-tuxonice 2.6.38.2
Uname: Linux 2.6.38-8-generic-tuxonice x86_64
NonfreeKernelModules: nvidia
Architecture: amd64
CrashCounter: 1
Date: Sat Jun 4 20:49:57 2011
ExecutablePath: /usr/lib/gnome-settings-daemon/gnome-settings-daemon
ProcCmdline: /usr/lib/gnome-settings-daemon/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/false
 PATH=(custom, no user)
SegvAnalysis:
 Segfault happened at: 0x7fbaf2ab9937: mov 0x8(%r8),%edx
 PC (0x7fbaf2ab9937) ok
 source "0x8(%r8)" (0x00000068) not located in a known VMA region (needed readable region)!
 destination "%edx" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: gnome-settings-daemon
StacktraceTop:
 ?? () from /lib64/ld-linux-x86-64.so.2
 ?? () from /lib64/ld-linux-x86-64.so.2
 ?? () from /lib64/ld-linux-x86-64.so.2
 ?? () from /lib64/ld-linux-x86-64.so.2
 dlopen_doit (a=0x7fff6e91f090) at dlopen.c:67
Title: gnome-settings-daemon crashed with SIGSEGV in dlopen_doit()
UpgradeStatus: Upgraded to natty on 2011-06-04 (1 days ago)
UserGroups:

Revision history for this message
Rockwalrus (rockwalrus) wrote :
visibility: private → public
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 ?? ()
 ?? ()
 ?? ()

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in eglibc (Ubuntu):
status: New → Invalid
Revision history for this message
Apport retracing service (apport) wrote : Crash report cannot be processed

Thank you for your report!

However, processing it in order to get sufficient information for the
developers failed (it does not generate an useful symbolic stack trace). This
might be caused by some outdated packages which were installed on your system
at the time of the report:

libk5crypto3: installed version 1.8.3+dfsg-5ubuntu2.1, latest version: 1.8.3+dfsg-5ubuntu2
libpulse0-dbg: installed version 1:0.9.22+stable-queue-24-g67d18-0ubuntu3.1, latest version: 1:0.9.22+stable-queue-24-g67d18-0ubuntu3
tzdata: installed version 2011g-0ubuntu0.11.04, latest version: 2011g-0ubuntu0.10.10
libpulse-mainloop-glib0-dbg: installed version 1:0.9.22+stable-queue-24-g67d18-0ubuntu3.1, latest version: 1:0.9.22+stable-queue-24-g67d18-0ubuntu3
libplymouth2: installed version 0.8.2-2ubuntu23, latest version: 0.8.2-2ubuntu22
libpam0g: installed version 1.1.2-2ubuntu8.3, latest version: 1.1.2-2ubuntu8
libgssapi-krb5-2: installed version 1.8.3+dfsg-5ubuntu2.1, latest version: 1.8.3+dfsg-5ubuntu2
libpam-modules-bin: installed version 1.1.2-2ubuntu8.3, latest version: 1.1.2-2ubuntu8
libpulse-mainloop-glib0: installed version 1:0.9.22+stable-queue-24-g67d18-0ubuntu3.1, latest version: 1:0.9.22+stable-queue-24-g67d18-0ubuntu3
libpulse0: installed version 1:0.9.22+stable-queue-24-g67d18-0ubuntu3.1, latest version: 1:0.9.22+stable-queue-24-g67d18-0ubuntu3
libpam-modules: installed version 1.1.2-2ubuntu8.3, latest version: 1.1.2-2ubuntu8
libkrb5-3: installed version 1.8.3+dfsg-5ubuntu2.1, latest version: 1.8.3+dfsg-5ubuntu2
plymouth: installed version 0.8.2-2ubuntu23, latest version: 0.8.2-2ubuntu22
libkrb5support0: installed version 1.8.3+dfsg-5ubuntu2.1, latest version: 1.8.3+dfsg-5ubuntu2
perl-base: installed version 5.10.1-17ubuntu4.1, latest version: 5.10.1-17ubuntu4

Please upgrade your system to the latest package versions. If you still
encounter the crash, please file a new report.

Thank you for your understanding, and sorry for the inconvenience!

tags: removed: need-amd64-retrace
Revision history for this message
Rockwalrus (rockwalrus) wrote :

Manual stacktrace was added, so not invalid.

Changed in eglibc (Ubuntu):
status: Invalid → New
Revision history for this message
Pedro Villavicencio (pedro) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. The issue that you reported is one that should be reproducible with the live environment of the Desktop CD of the development release - Oneiric Ocelot. It would help us greatly if you could test with it so we can work on getting it fixed in the next release of Ubuntu. You can find out more about the development release at http://www.ubuntu.com/testing/ . Thanks again and we appreciate your help.

Changed in eglibc (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Changed in gnome-settings-daemon (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for gnome-settings-daemon (Ubuntu) because there has been no activity for 60 days.]

Changed in gnome-settings-daemon (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for eglibc (Ubuntu) because there has been no activity for 60 days.]

Changed in eglibc (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.