xrandr plugin of g-s-d crashes on startup

Bug #314406 reported by Sebastian Keller
94
This bug affects 11 people
Affects Status Importance Assigned to Milestone
gnome-desktop
Unknown
Critical
gnome-desktop (Ubuntu)
Fix Released
Medium
Ubuntu Desktop Bugs

Bug Description

I recently switched to the vesa driver instead of the intel driver and I
noticed that gnome-settings-daemon was not starting anymore. Further
investigation showed that it was segfaulting in the xrandr plugin. Removing
~/.config/monitors.xml fixes this. I already reported this bug in gnome bugzilla and it was suggested that this might be a problem with this patch: http://patches.ubuntu.com/by-release/extracted/ubuntu/g/gnome-desktop/1:2.25.3-0ubuntu1/100_load_desired_settings.patch

Ubuntu Jaunty
libgnome-desktop-2-11: 1:2.25.3-0ubuntu1
gnome-settings-daemon: 2.25.2-0ubuntu3
libxrandr: 2:1.2.99.2-0ubuntu1

gnome-settings-daemon --no-daemon --debug
** (gnome-settings-daemon:5559): DEBUG: Successfully connected to D-Bus
** (gnome-settings-daemon:5559): DEBUG: Starting settings manager
** (gnome-settings-daemon:5559): DEBUG: Loading settings plugins from dir:
/usr/lib/gnome-settings-daemon-2.0/
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Hintergrund'
file='/usr/lib/gnome-settings-daemon-2.0/background.gnome-settings-plugin'
location='background'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Tipppause'
file='/usr/lib/gnome-settings-daemon-2.0/typing-break.gnome-settings-plugin'
location='typing-break'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo: name='XRandR'
file='/usr/lib/gnome-settings-daemon-2.0/xrandr.gnome-settings-plugin'
location='xrandr'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Tastenkürzel'
file='/usr/lib/gnome-settings-daemon-2.0/keybindings.gnome-settings-plugin'
location='keybindings'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo: name='Dummy'
file='/usr/lib/gnome-settings-daemon-2.0/dummy.gnome-settings-plugin'
location='dummy'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo: name='Schrift'
file='/usr/lib/gnome-settings-daemon-2.0/font.gnome-settings-plugin'
location='font'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Housekeeping'
file='/usr/lib/gnome-settings-daemon-2.0/housekeeping.gnome-settings-plugin'
location='housekeeping'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='X-Einstellungen'
file='/usr/lib/gnome-settings-daemon-2.0/xsettings.gnome-settings-plugin'
location='xsettings'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Zwischenablage'
file='/usr/lib/gnome-settings-daemon-2.0/clipboard.gnome-settings-plugin'
location='clipboard'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Medientasten'
file='/usr/lib/gnome-settings-daemon-2.0/media-keys.gnome-settings-plugin'
location='media-keys'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Tastatur'
file='/usr/lib/gnome-settings-daemon-2.0/keyboard.gnome-settings-plugin'
location='keyboard'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Barrierefreie Tastatur'
file='/usr/lib/gnome-settings-daemon-2.0/a11y-keyboard.gnome-settings-plugin'
location='a11y-keyboard'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo: name='Maus'
file='/usr/lib/gnome-settings-daemon-2.0/mouse.gnome-settings-plugin'
location='mouse'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='Bildschirmschoner'
file='/usr/lib/gnome-settings-daemon-2.0/screensaver.gnome-settings-plugin'
location='screensaver'
** (gnome-settings-daemon:5559): DEBUG: Loading plugin:
/usr/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsPluginInfo:
name='X-Ressourcendatenbank'
file='/usr/lib/gnome-settings-daemon-2.0/xrdb.gnome-settings-plugin'
location='xrdb'
** (gnome-settings-daemon:5559): DEBUG: GnomeSettingsModule 0x8bdc078
initialising
** (gnome-settings-daemon:5559): DEBUG: Loading
/usr/lib/gnome-settings-daemon-2.0/libxrandr.so
** (gnome-settings-daemon:5559): DEBUG: Registering GsdXrandrPlugin
** (gnome-settings-daemon:5559): DEBUG: Creating object of type GsdXrandrPlugin
** (gnome-settings-daemon:5559): DEBUG: GsdXrandrPlugin initializing
** (gnome-settings-daemon:5559): DEBUG: Activating xrandr plugin
** (gnome-settings-daemon:5559): DEBUG: Starting xrandr manager
desired is = /home/sebastian/.config/monitors.xml.desired
reading configuration...
done
error MATCHESSegmentation fault

gdb gnome-settings-daemon
(gdb) run --no-daemon

(gdb) bt full
#0 gnome_rr_config_match (c1=0x847f748, c2=0x0) at gnome-rr-config.c:801
        output2 = (GnomeOutputInfo *) 0x8480428
#1 0xb701aed2 in gnome_rr_config_apply_stored (screen=0x847f0d0, error=0x0) at
gnome-rr-config.c:931
        stored = (GnomeRRConfig *) 0x0
        desired_configs = (GnomeRRConfig **) 0x8480428
        desired_found = <value optimized out>
        result = <value optimized out>
        my_error = (GError *) 0x0
        __PRETTY_FUNCTION__ = "gnome_rr_config_apply_stored"
#2 0xb7091c7c in gsd_xrandr_manager_start (manager=0x8469b20,
error=0xbf949520) at gsd-xrandr-manager.c:732
        __PRETTY_FUNCTION__ = "gsd_xrandr_manager_start"
#3 0xb7090b1f in impl_activate (plugin=0x847aa80) at gsd-xrandr-plugin.c:78
        res = <value optimized out>
        error = (GError *) 0x0
#4 0x0804cedf in gnome_settings_plugin_info_activate ()
No symbol table info available.
#5 0x0804b90e in ?? ()
No symbol table info available.
#6 0xb774b727 in IA__g_slist_foreach (list=0x8475498, func=0x804b8f0,
user_data=0x843f958) at /build/buildd/glib2.0-2.19.3/glib/gslist.c:743
        next = (GSList *) 0x843f968
#7 0x0804bb65 in gnome_settings_manager_start ()
No symbol table info available.
#8 0x0804b689 in main ()
No symbol table info available.

(gdb) info registers
eax 0x8479948 138910024
ecx 0x11 17
edx 0x0 0
ebx 0xb7020ff4 -1224601612
esp 0xbf949440 0xbf949440
ebp 0xbf949468 0xbf949468
esi 0x848042c 138937388
edi 0x8480428 138937384
eip 0xb7018b2b 0xb7018b2b <gnome_rr_config_match+59>
eflags 0x210202 [ IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51

xrandr
Screen 0: minimum 640 x 480, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 0mm x 0mm
   1024x768 61.0*
   800x600 73.0
   640x480 60.0

ls -l /home/sebastian/.config/monitors.xml.desired
ls: cannot access /home/sebastian/.config/monitors.xml.desired: No such file or
directory

cat .config/monitors.xml
<monitors version="1">
  <configuration>
      <clone>yes</clone>
      <output name="TV">
      </output>
      <output name="LVDS">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1024</width>
          <height>768</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
      </output>
      <output name="VGA">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1024</width>
          <height>768</height>
          <rate>60</rate>
          <x>1024</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
      </output>
  </configuration>
  <configuration>
      <clone>yes</clone>
      <output name="VGA">
      </output>
      <output name="TV">
      </output>
      <output name="LVDS">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1024</width>
          <height>768</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
      </output>
  </configuration>
  <configuration>
      <clone>yes</clone>
      <output name="VGA">
      </output>
      <output name="LVDS">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1024</width>
          <height>768</height>
          <rate>25</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
      </output>
      <output name="TV">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1024</width>
          <height>768</height>
          <rate>25</rate>
          <x>1024</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
      </output>
  </configuration>
</monitors>

Revision history for this message
Pedro Villavicencio (pedro) wrote :
Changed in gnome-desktop:
assignee: nobody → desktop-bugs
importance: Undecided → Medium
status: New → Confirmed
Changed in gnome-desktop:
status: Unknown → Invalid
Revision history for this message
Alberto Milone (albertomilone) wrote :

I have updated my patch in my bzr branch, please merge from it:
https://code.edge.launchpad.net/~albertomilone/gnome-desktop/tseliot-fixes

Revision history for this message
Nicolò Chieffo (yelo3) wrote : Re: [Bug 314406] Re: xrandr plugin of g-s-d crashes on startup

please attach the patch here!

Revision history for this message
Alberto Milone (albertomilone) wrote :

The package is maintained in bazaar therefore I fixed the problem there. You can find the patch here:
http://bazaar.launchpad.net/~albertomilone/gnome-desktop/tseliot-fixes/annotate/head%3A/debian/patches/100_load_desired_settings.patch

Feedback is welcome

Revision history for this message
Alberto Milone (albertomilone) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gnome-desktop - 1:2.25.5-0ubuntu1

---------------
gnome-desktop (1:2.25.5-0ubuntu1) jaunty; urgency=low

  * New upstream version:
    libgnome-desktop
    - GnomeBG: use gdk_color_equal() instead of custom function
    - GnomeRR: use XRRGetScreenResourcesCurrent instead of
      XRRGetScreenResources when available (xrandr 1.3) because it's cheaper
      (lp: #307306)
    - GnomeBG: emit "transitioned" signal instead of "changed" signal for
      new frames in a slideshow background
    - GnomeBG: reorganize code a bit
    - GnomeBG: add fading API to support fading between two backgrounds

gnome-desktop (1:2.25.3-0ubuntu2) jaunty; urgency=low

  * debian/patches/100_load_desired_settings.patch:
    - libgnome-desktop/gnome-rr-config.c:
      + clean up the patch to reuse code from the current API
      + don't segfault with old configuration files (LP: #314406)
      + remove notification on login when the configuration file
        is absent or invalid
      + don't let configurations_read_from_file() try to read xml
        files which don't exist

 -- Sebastien Bacher <email address hidden> Tue, 20 Jan 2009 10:50:09 +0100

Changed in gnome-desktop:
status: Confirmed → Fix Released
Revision history for this message
SanketMedhi (sanketmedhi-gmail) wrote :

I am facing this problem for the past 3 days. I have a fully updated system, but there is no effect on the problem. How do I solve it? Should I completely remove the above mentioned packages and then install them again?

Changed in gnome-desktop:
importance: Unknown → Critical
status: Invalid → Unknown
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.