Xorg crashed with SIGSEGV in miValidateTree if BackingStore option used - compUnredirectWindow+0x7b

Bug #274988 reported by brad
36
This bug affects 3 people
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
Medium
xorg-server (Ubuntu)
Invalid
High
Unassigned

Bug Description

Binary package hint: gnome-system-monitor

Description: Ubuntu intrepid (development branch)
Release: 8.10

gnome-system-monitor:
  Installed: 2.24.0-0ubuntu1
  Candidate: 2.24.0-0ubuntu1
  Version table:
 *** 2.24.0-0ubuntu1 0
        500 http://mirror.anl.gov intrepid/main Packages
        100 /var/lib/dpkg/status

When opening gnome-system-monitor, x will crash almost instantly. If it doesn't crash immediately, navigating to the Processes tab will instigate the crash.

What log would have the relevant information for assessing this crash? dmesg just does this after:

[ 7290.461941] [drm] Num pipes: 3
[ 7293.674548] [drm] Setting GART location based on new memory map
[ 7293.677406] [drm] Loading R300 Microcode
[ 7293.677453] [drm] Num pipes: 3
[ 7293.677464] [drm] writeback test succeeded in 1 usecs
[ 7318.507945] CPU0 attaching NULL sched-domain.
[ 7318.507969] CPU1 attaching NULL sched-domain.
[ 7318.537119] CPU0 attaching sched-domain:
[ 7318.537133] domain 0: span 0-1 level CPU
[ 7318.537136] groups: 0 1
[ 7318.537140] domain 1: span 0-1 level NODE
[ 7318.537144] groups: 0-1
[ 7318.537150] CPU1 attaching sched-domain:
[ 7318.537151] domain 0: span 0-1 level CPU
[ 7318.537153] groups: 1 0
[ 7318.537157] domain 1: span 0-1 level NODE
[ 7318.537158] groups: 0-1

[lspci]
00:00.0 Host bridge [0600]: ATI Technologies Inc RS480 Host Bridge [1002:5950] (rev 10)
     Subsystem: Dell Device [1028:01f5]
01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS482 [Radeon Xpress 200M] [1002:5975]
     Subsystem: Dell Device [1028:01f5]

Tags: intrepid
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. gnome-system-monitor shouldn't be able to crash the X server, so I've reassigned your bug to xorg for now. Please could you trigger the crash, and then attach your old X server log file (/var/log/Xorg.0.log.old) when you log in to the next session after the crash. This should hopefully contain a backtrace of the crash.

Thanks in advance.

Changed in gnome-system-monitor:
status: New → Incomplete
Revision history for this message
brad (bradlambeth) wrote :
Revision history for this message
brad (bradlambeth) wrote :

Is there anything else I need to do to confirm this bug?

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Thanks.

Would you mind trying to obtain a backtrace of the crash, by following the steps at https://wiki.ubuntu.com/X/Backtracing

Revision history for this message
brad (bradlambeth) wrote :

Here's the backtrace from my old Xorg log:

Backtrace:
0: /usr/X11R6/bin/X(xf86SigHandler+0x65) [0x481005]
1: /lib/libc.so.6 [0x7f100a383060]
2: /usr/X11R6/bin/X(miHandleValidateExposures+0x6c) [0x4e59fc]
3: /usr/X11R6/bin/X(UnmapWindow+0x248) [0x4386f8]
4: /usr/X11R6/bin/X(compFreeClientWindow+0x23e) [0x4ff36e]
5: /usr/X11R6/bin/X [0x4fca59]
6: /usr/X11R6/bin/X(FreeResource+0x134) [0x435fd4]
7: /usr/X11R6/bin/X(compUnredirectWindow+0x63) [0x4fef53]
8: /usr/X11R6/bin/X [0x4fd4a6]
9: /usr/X11R6/bin/X [0x4e5faf]
10: /usr/X11R6/bin/X [0x4e5ebc]
11: /usr/X11R6/bin/X(miChangeSaveUnder+0x50) [0x4e6050]
12: /usr/X11R6/bin/X(MapWindow+0x40c) [0x438e8c]
13: /usr/X11R6/bin/X(ProcMapWindow+0x46) [0x44cf66]
14: /usr/X11R6/bin/X(Dispatch+0x364) [0x44d7a4]
15: /usr/X11R6/bin/X(main+0x45d) [0x43378d]
16: /lib/libc.so.6(__libc_start_main+0xe6) [0x7f100a36e466]
17: /usr/X11R6/bin/X [0x432b69]
Saw signal 11. Server aborting.

I installed the dbg packages recommended in your guide. Which portion of the guide would you recommend?

Revision history for this message
brad (bradlambeth) wrote :

Nevermind, I figured it out. Attached is the backtrace from gdb.

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Thanks for the backtrace. Before I triage this, would you mind attaching your /etc/X11/xorg.conf (if you have one). If you do have one, could you also try running without it? Please also run the following, and attach the resulting log file to this bug report:

"sudo lspci -vvnn > lspci.log"

Thanks

Changed in xorg:
importance: Undecided → Medium
Revision history for this message
brad (bradlambeth) wrote : Re: Xorg crashed with SIGSEGV in miValidateTree

When I run without an xorg.conf, it asks to reconfigure the graphics. After restarting, gnome-system-monitor doesn't crash x anymore, but is using the failsafe graphics, i.e. framebuffer.

Revision history for this message
brad (bradlambeth) wrote :
Changed in xorg-server:
status: Incomplete → Triaged
Revision history for this message
brad (bradlambeth) wrote :

When I remove the backingstore option from xorg.conf, X doesn't crash anymore when opening gnome-system-monitor. Should backingstore work for my card, or should I just leave this alone?

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Hmmmmm, BackingStore causes problems for me too (but with a NVIDIA card). I'd remove it if you don't need it. I'll keep this bug open though because it still shouldn't cause the Xserver to crash.

Did you add the BackingStore option manually, or was it added automatically?

Revision history for this message
brad (bradlambeth) wrote :

I added it manually. Just trying to squeeze all the performance I could out of the open-source drivers until the proprietary drivers start working with xserver 1.5.

A few threads I read mentioned that backingstore shouldn't be used with X.org 7.4. I can't find any official documentation of this, but for now I'm fine with not using it.

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Thanks. I'm going to adjust the importance of the bug to low, as this really only occurs with a fairly non-standard configuration, and isn't going to affect many people. I will still keep the bug open though, as the crash shouldn't happen anyway.

Changed in xorg-server:
importance: Medium → Low
Revision history for this message
brad (bradlambeth) wrote :

Just wanted to add that this error happens with the fglrx driver as well. Backingstore just doesn't work.

Revision history for this message
Jakub Argasiński (argasek) wrote :

Confirming here on Kubuntu Intrepid 8.10 rc, nvidia 177.80 drivers. With "Backingstore" option set to on KDE4 crashes *a lot* - mostly using Konsole. If Konsole gets remembered in session, this leads to KDE4 crashing immediately after login.
@Chris: I think this bug may affect more people than expected; examples:
- http://www.nvnews.net/vbulletin/showthread.php?t=120630
- http://my.stargazer.at/2008/10/13/kde-4-no-thanks-yet/
- http://www.nvnews.net/vbulletin/showthread.php?t=115535
- http://bugs.kde.org/show_bug.cgi?id=169147
Moreover, one can easily find instructions to improve performance in KDE4 for nVidia cards like this: http://userbase.kde.org/GPU-Performance and setting backingstore to "on" is mentioned all the time. It really took me a while to find this bug report and an advice: http://forum.kde.org/showthread.php?tid=6721&pid=7344#pid7344.

Revision history for this message
In , Bryce Harrington (bryce) wrote :
Download full text (6.1 KiB)

Several reporters are finding the Backingstore option causes crashes on a range of different hardware:
https://bugs.edge.launchpad.net/ubuntu/+source/xorg-server/+bug/274988

Below is a backtrace from the crash. Is this option supposed to work reliably? If not, perhaps it should be deprecated?

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fe72afc46e0 (LWP 11393)]
0x00000000004de71e in miValidateTree (pParent=0x2144a40,
    pChild=0x7fff32fe79c0, kind=VTMap) at ../../mi/mivaltree.c:790
 in ../../mi/mivaltree.c
(gdb) backtrace full
#0 0x00000000004de71e in miValidateTree (pParent=0x2144a40,
    pChild=0x7fff32fe79c0, kind=VTMap) at ../../mi/mivaltree.c:790
 totalClip = {extents = {x1 = 0, y1 = 24, x2 = 0, y2 = 24},
  data = 0x7e1c60}
 childClip = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0},
  data = 0x7e1c60}
 childUnion = {extents = {x1 = 1, y1 = 0, x2 = 0, y2 = 0}, data = 0x0}
 exposed = {extents = {x1 = 0, y1 = 0, x2 = 0, y2 = 0},
  data = 0x7e1c60}
 pScreen = (ScreenPtr) 0x20e4a90
 pWin = (WindowPtr) 0x0
 overlap = 1
 viewvals = 0
 forward = 855538080
#1 0x00007fe728693813 in DRIValidateTree (pParent=0x2144a40,
    pChild=0x28daa00, kind=VTMap) at ../../../../hw/xfree86/dri/dri.c:2055
 pScreen = (ScreenPtr) 0x20e4a90
 returnValue = <value optimized out>
#2 0x0000000000438e67 in MapWindow (pWin=0x28daa00,
    client=<value optimized out>) at ../../dix/window.c:2811
 event = {u = {u = {type = 19 '\023', detail = 123 '{',
      sequenceNumber = 1236}, keyButtonPointer = {pad00 = 81034003,
      time = 104, root = 52429243, event = 1, child = 36695712, rootX = 0,
      rootY = 0, eventX = 22480, eventY = 126, state = 0,
      sameScreen = 0 '\0', pad1 = 0 '\0'}, enterLeave = {pad00 = 81034003,
      time = 104, root = 52429243, event = 1, child = 36695712, rootX = 0,
      rootY = 0, eventX = 22480, eventY = 126, state = 0, mode = 0 '\0',
      flags = 0 '\0'}, focus = {pad00 = 81034003, window = 104,
      mode = 187 '»', pad1 = 1 '\001', pad2 = 32 ' ', pad3 = 3 '\003'},
    expose = {pad00 = 81034003, window = 104, x = 443, y = 800, width = 1,
      height = 0, count = 61088, pad2 = 559}, graphicsExposure = {
      pad00 = 81034003, drawable = 104, x = 443, y = 800, width = 1,
      height = 0, minorEvent = 61088, count = 559, majorEvent = 0 '\0',
      pad1 = 0 '\0', pad2 = 0 '\0', pad3 = 0 '\0'}, noExposure = {
      pad00 = 81034003, drawable = 104, minorEvent = 443,
      majorEvent = 32 ' ', bpad = 3 '\003'}, visibility = {pad00 = 81034003,
      window = 104, state = 187 '»', pad1 = 1 '\001', pad2 = 32 ' ',
      pad3 = 3 '\003'}, createNotify = {pad00 = 81034003, parent = 104,
      window = 52429243, x = 1, y = 0, width = 61088, height = 559,
      borderWidth = 0, override = 0 '\0', bpad = 0 '\0'}, destroyNotify = {
      pad00 = 81034003, event = 104, window = 52429243}, unmapNotify = {
      pad00 = 81034003, event = 104, window = 52429243,
      fromConfigure = 1 '\001', pad1 = 0 '\0', pad2 = 0 '\0', pad3 = 0 '\0'},
    mapNotify = {pad00 = 81034003, event = 104, window = 52429243,
      override = 1 '\001', pad1 = 0 '\0', pad2 = 0 '\0', pad3 = 0 '\0'},
    mapReques...

Read more...

Revision history for this message
Bryce Harrington (bryce) wrote : Re: Xorg crashed with SIGSEGV in miValidateTree

Hi guys,

I've forwarded this issue upstream. Please subscribe to it in case upstream has further questions or wishes you to test something: https://bugs.freedesktop.org/show_bug.cgi?id=18895

Meanwhile, yeah, sounds like it would be wisest to avoid the option. Upstream (esp -intel upstream) has been doing a lot of performance work, and some of the non-default performance-related options can expose code that is not very thoroughly QA'd as the defaults.

Changed in xorg-server:
status: Unknown → Confirmed
Bryce Harrington (bryce)
description: updated
Revision history for this message
Bryce Harrington (bryce) wrote :

bug 310038 has a good backtrace on it. Set as dupe of this one.

summary: - Xorg crashed with SIGSEGV in miValidateTree
+ Xorg crashed with SIGSEGV in miValidateTree if BackingStore option used
+ - compUnredirectWindow+0x7b
Changed in xorg-server (Ubuntu):
importance: Low → High
Revision history for this message
In , Enrico-tagliavini (enrico-tagliavini) wrote :

Created an attachment (id=24481)
Xorg.0.log

I have a similar problem with backingstore option enabled using kde4.2.1 under xorg 7.4 (xorg-server-1.5.3) xf86-video-ati-6.10.0. I'm using a radeon 9250 (r200 based) card.

When some dialog pop up or when i drag and drop a plasmoid to the desktop Xorg crash with segfault (the log is obtained in latter case). If i disable desktop effect Xorg crash at login.

If i disable backingstore the issue is not present.

Bryce Harrington (bryce)
tags: added: intrepid
Revision history for this message
Bryce Harrington (bryce) wrote :

This bug seems to be pretty ancient; I'm guessing if it were still relevant we'd have seen more recent comments. In any case the backtraces have bitrotted; they no longer point into the right functions. So presumably code's been changed which has made this bug go away.

If I'm wrong and the bug can be reproduced on Karmic, feel free to reopen and attach a fresh Backtrace. A fresh Xorg.0.log couldn't hurt either.

Changed in xorg-server (Ubuntu):
status: Triaged → Invalid
Changed in xorg-server:
importance: Unknown → Medium
Changed in xorg-server:
importance: Medium → Unknown
Changed in xorg-server:
importance: Unknown → Medium
Revision history for this message
In , Ajax-a (ajax-a) wrote :

I think this is fixed since 1.6. The backtrace seems to point into the old dix save-under code, which no longer exists as of 1.6 (but did in 1.5, when these backtraces seem to originate).

Changed in xorg-server:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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