x server dies with a SIGSEGV when gnome screen saver blanks the display

Bug #383129 reported by Andy Whitcroft
54
This bug affects 8 people
Affects Status Importance Assigned to Milestone
xserver-xorg-video-intel (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: xorg

After newly updating one of my servers and logging in on the console I see the session and and the gdm prompt return. This occurs after some minutes, so far always when I am not using the machine. Looking at the Xorg.0.log I see a SIGSEGV reported.

ProblemType: Bug
Architecture: amd64
Date: Wed Jun 3 12:24:19 2009
DistroRelease: Ubuntu 9.10
MachineType: System Manufacturer To Be Filled By O.E.M. Product Name To Be Filled By O.E.M.
Package: xserver-xorg 1:7.4~5ubuntu20
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.30-7-generic root=UUID=5fb55e5f-9697-4ad3-ba1f-ad86a6d2c0ef ro quiet splash libata.ignore_hpa=0
ProcEnviron:
 PATH=(custom, user)
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.30-7.8-generic
RelatedPackageVersions:
 xserver-xorg 1:7.4~5ubuntu20
 libgl1-mesa-glx 7.4.1-1ubuntu1
 libdrm2 2.4.11-0ubuntu1
 xserver-xorg-video-intel 2:2.7.99.1+git20090602.ec2fde7c-0ubuntu1
 xserver-xorg-video-ati 1:6.12.2-1ubuntu1
SourcePackage: xorg
Uname: Linux 2.6.30-7-generic x86_64
dmi.bios.date: 05/30/2008
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: CGELIA47.86P
dmi.board.asset.tag: BB Asset To Be Filled By O.E.M.
dmi.board.name: BB Name To be filled by O.E.M.
dmi.board.vendor: BB Manufacturer To be filled by O.E.M.
dmi.board.version: BB Version To be filled by O.E.M.
dmi.chassis.asset.tag: Chasis Asset Tag To Be Filled By O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: Chasis Manufacturer To Be Filled By O.E.M.
dmi.chassis.version: Chasis Version To Be Filled By O.E.M.
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrCGELIA47.86P:bd05/30/2008:svnSystemManufacturerToBeFilledByO.E.M.:pnProductNameToBeFilledByO.E.M.:pvrSystemVersionToBeFilledByO.E.M.:rvnBBManufacturerTobefilledbyO.E.M.:rnBBNameTobefilledbyO.E.M.:rvrBBVersionTobefilledbyO.E.M.:cvnChasisManufacturerToBeFilledByO.E.M.:ct3:cvrChasisVersionToBeFilledByO.E.M.:
dmi.product.name: Product Name To Be Filled By O.E.M.
dmi.product.version: System Version To Be Filled By O.E.M.
dmi.sys.vendor: System Manufacturer To Be Filled By O.E.M.
fglrx: Not loaded
fglrx-loaded: Error: command ['grep', 'fglrx', '/var/log/kern.log', '/proc/modules'] failed with exit code 1:
system:
 distro: Ubuntu
 architecture: x86_64kernel: 2.6.30-7-generic

Revision history for this message
Andy Whitcroft (apw) wrote :
Revision history for this message
Andy Whitcroft (apw) wrote :

Ok watching my machine the screen saver kicked in, the screen faded to black and at that instant died and gem restarted it. So its looking like it is the final act of locking the screen which is taking the server out.

Revision history for this message
Andy Whitcroft (apw) wrote :

Following the X-debug guide I obtained a debugging trace via gdb for this crash:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f8c10bee6f0 (LWP 4508)]
I830DRI2CopyRegion (pDraw=0x50fd220, pRegion=<value optimized out>,
    pDstBuffer=<value optimized out>, pSrcBuffer=<value optimized out>)
    at ../../src/i830_dri.c:322
322 ../../src/i830_dri.c: No such file or directory.
 in ../../src/i830_dri.c
(gdb) backtrace full
#0 I830DRI2CopyRegion (pDraw=0x50fd220, pRegion=<value optimized out>,
    pDstBuffer=<value optimized out>, pSrcBuffer=<value optimized out>)
    at ../../src/i830_dri.c:322
 crtcbox = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}
 pipe = <value optimized out>
 crtc = (xf86CrtcPtr) 0x0
 event = <value optimized out>
 load_scan_lines_pipe = <value optimized out>
 srcPrivate = <value optimized out>
 dstPrivate = <value optimized out>
 pScreen = <value optimized out>
 pScrn = (ScrnInfoPtr) 0x21992c0
 pI830 = (I830Ptr) 0x219b3f0
 pSrcPixmap = (PixmapPtr) 0x56ddeb0
 pDstPixmap = (PixmapPtr) 0x50fd220
 pCopyClip = <value optimized out>
 pGC = (GCPtr) 0x4f41890
 __func__ = "I830DRI2CopyRegion"
#1 0x00007f8c0d53411b in DRI2CopyRegion (pDraw=0x50fd220,
    pRegion=0x7fff8d07ca30, dest=0, src=1)
    at ../../../../hw/xfree86/dri2/dri2.c:186
 ds = (DRI2ScreenPtr) 0x21c99d0
 pPriv = <value optimized out>
 pDestBuffer = (DRI2BufferPtr) 0x0
 pSrcBuffer = (DRI2BufferPtr) 0x7fff8d07c9b0
 i = <value optimized out>
#2 0x00007f8c0dd95fd1 in __glXDRIdrawableCopySubBuffer (
    drawable=<value optimized out>, x=<value optimized out>,
    y=<value optimized out>, w=<value optimized out>, h=35245040)
    at ../../glx/glxdri2.c:129
 region = {extents = {x1 = 0, y1 = 0, x2 = 1280, y2 = 1024}, data = 0x0}
#3 0x00007f8c0dd95ff4 in __glXDRIdrawableSwapBuffers (drawable=0x0)
    at ../../glx/glxdri2.c:138
No locals.
#4 0x00007f8c0dd88ad6 in __glXDisp_SwapBuffers (cl=0x519d800,
    pc=<value optimized out>) at ../../glx/glxcmds.c:1455
 client = (ClientPtr) 0x51b5120
 tag = 1
 drawId = 95
 glxc = (__GLXcontext *) 0x51ceef0
 pGlxDraw = (__GLXdrawable *) 0x0
 error = <value optimized out>
#5 0x00007f8c0dd8bdb9 in __glXDispatch (client=0x51b5120)
    at ../../glx/glxext.c:541
 stuff = (xGLXSingleReq *) 0x5db8b28
 opcode = <value optimized out>
 cl = (__GLXclientState *) 0x519d800
 retval = <value optimized out>
#6 0x000000000044e044 in Dispatch () at ../../dix/dispatch.c:437
 result = <value optimized out>
 client = (ClientPtr) 0x51b5120
 nready = 0
 start_tick = 500
#7 0x0000000000433f15 in main (argc=<value optimized out>,
    argv=0x7fff8d07ccc8, envp=<value optimized out>) at ../../dix/main.c:397
 i = 1
 alwaysCheckForInput = {0, 1}

Andy Whitcroft (apw)
summary: - x server dieing SIGSEGV
+ x server dies with a SIGSEGV when gnome screen saver blanks the display
Revision history for this message
Andy Whitcroft (apw) wrote :

Seems that this may be related to a last minute commit to enable vsync for DRI2 CopyRegion. Testing with some packages containing fixes for that code seems to have fixed my machine.

Revision history for this message
Kai Jauch (kaijauch) wrote :

Switching to fullscreen mode in totem/mplayer/firefox also triggers a crash.

Changed in xorg (Ubuntu):
status: New → Confirmed
Revision history for this message
Robert Hooker (sarvatt) wrote :

You can install this to fix it as a drop in replacement with no external dependencies until it's fixed in the archive, or just disable compiz in the meantime.

https://edge.launchpad.net/%7Esarvatt/+archive/ppa/+sourcepub/643434/+listing-archive-extra

Revision history for this message
Albert Damen (albrt) wrote :

Should be fixed by commit "Fix segfault in DRI2 vblank syncing if the region isn't onscreen", which handles the crtc=0x0 case.

affects: xorg (Ubuntu) → xserver-xorg-video-intel (Ubuntu)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-video-intel - 2:2.7.99.1+git20090602.ec2fde7c-0ubuntu2

---------------
xserver-xorg-video-intel (2:2.7.99.1+git20090602.ec2fde7c-0ubuntu2) karmic; urgency=low

  * Add 118_pixmap_inline_funcs.patch, 119_fix_drawable_abuse.patch,
    120_fix_dri2_vblank_syncing_segfault.patch: Cherrypicks from upstream
    to fix segfault associated with a last minute commit in the prior
    snapshot to enable vsync for DRI2 CopyRegion.
    (LP: #383129)

 -- Bryce Harrington <email address hidden> Thu, 04 Jun 2009 07:45:05 -0700

Changed in xserver-xorg-video-intel (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
DSHR (s-heuer) wrote :

Thanks a lot for the quick fix!

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.