I decided to take gdb to it and see what was going on, I've done two separate backtraces which are getting similar but not identical backtraces - it looks to me as if dst_private is corrupt somehow and how far it gets depends how broken it is:
-------------------------------------------------------------- Try 1: Program received signal SIGSEGV, Segmentation fault. dixLookupPrivate (pPix=0x2dcb680) at ../../include/privates.h:167 167 ../../include/privates.h: No such file or directory. in ../../include/privates.h (gdb) where #0 dixLookupPrivate (pPix=0x2dcb680) at ../../include/privates.h:167 #1 exaGetPixmapDriverPrivate (pPix=0x2dcb680) at ../../exa/exa.c:70 #2 0x00007fc132db2ff1 in radeon_dri2_copy_region (drawable=0x2c79a30, region=0x7fff2f714390, dest_buffer=<value optimised out>, src_buffer=<value optimised out>) at ../../src/radeon_dri2.c:309 #3 0x00007fc132db3623 in radeon_dri2_frame_event_handler (frame=965179, tv_sec=1281901385, tv_usec=296316, event_data=<value optimised out>) at ../../src/radeon_dri2.c:381 #4 0x00007fc1333f3703 in drmHandleEvent () from /lib/libdrm.so.2 #5 0x000000000043168b in WakeupHandler (result=1, pReadmask=0x7e2700) at ../../dix/dixutils.c:419 #6 0x000000000045b3b7 in WaitForSomething ( pClientsReady=<value optimised out>) at ../../os/WaitFor.c:232 #7 0x000000000042c022 in Dispatch () at ../../dix/dispatch.c:368 #8 0x000000000042184b in main (argc=9, argv=0x7fff2f714cb8, envp=<value optimised out>) at ../../dix/main.c:291 (gdb) up #2 0x00007fc132db2ff1 in radeon_dri2_copy_region (drawable=0x2c79a30, region=0x7fff2f714390, dest_buffer=<value optimised out>, src_buffer=<value optimised out>) at ../../src/radeon_dri2.c:309 309 ../../src/radeon_dri2.c: No such file or directory. in ../../src/radeon_dri2.c (gdb) p dst_private $1 = (struct dri2_buffer_priv *) 0x2dd1090 (gdb) p *dst_private $2 = {pixmap = 0x2dcb680, attachment = 0} (gdb) p *dst_private->pixmap $3 = {drawable = {type = 32 ' ', class = 0 '\000', depth = 0 '\000', bitsPerPixel = 0 '\000', id = 0, x = 33, y = 0, width = 0, height = 0, pScreen = 0x2c8dfd0, serialNumber = 9}, devPrivates = 0x0, refcnt = 33, devKind = 0, devPrivate = {ptr = 0xc000c00000000, val = 3377751260135424, uval = 3377751260135424, fptr = 0xc000c00000000}, screen_x = 0, screen_y = 0, usage_hint = 0} (gdb) p /x *dst_private->pixmap $4 = {drawable = {type = 0x20, class = 0x0, depth = 0x0, bitsPerPixel = 0x0, id = 0x0, x = 0x21, y = 0x0, width = 0x0, height = 0x0, pScreen = 0x2c8dfd0, serialNumber = 0x9}, devPrivates = 0x0, refcnt = 0x21, devKind = 0x0, devPrivate = {ptr = 0xc000c00000000, val = 0xc000c00000000, uval = 0xc000c00000000, fptr = 0xc000c00000000}, screen_x = 0x0, screen_y = 0x0, usage_hint = 0x0} (gdb) (gdb) p *region $7 = {extents = {x1 = 0, y1 = 0, x2 = 480, y2 = 303}, data = 0x0} (gdb) p *drawable $9 = {type = 0 '\000', class = 1 '\001', depth = 24 '\030', bitsPerPixel = 32 ' ', id = 71303212, x = 807, y = 373, width = 480, height = 303, pScreen = 0x2740be0, serialNumber = 12418050} (gdb) p *drawable->pScreen $10 = {myNum = 0, id = 0, x = 0, y = 0, width = 1920, height = 1080, mmWidth = 508, mmHeight = 285, numDepths = 7, rootDepth = 24 '\030', allowedDepths = 0x27354f0, rootVisual = 33, defColormap = 32, minInstalledCmaps = 1, maxInstalledCmaps = 1, backingStoreSupport = 0 '\000', saveUnderSupport = 0 '\000', whitePixel = 16777215, blackPixel = 0, GCperDepth = {0x277ee60, 0x277ef50, 0x277f040, 0x277f130, 0x277f220, 0x277f310, 0x277f400, 0x277f4f0, 0x0}, PixmapPerDepth = {0x277f5e0}, devPrivate = 0x277c6d0, numVisuals = 64, visuals = 0x277d760, root = 0x27817b0, screensaver = {pWindow = 0x0, wid = 256, blanked = 0 '\000', ExternalScreenSaver = 0}, CloseScreen = 0x7fc133a42af0 <glxCloseScreen>, QueryBestSize = 0x53eb60 <xf86CursorQueryBestSize>, SaveScreen = 0x7fc132db44e0 <RADEONSaveScreen_KMS>, GetImage = 0x55bd50 <miSpriteGetImage>, GetSpans = 0x55baf0 <miSpriteGetSpans>, SourceValidate = 0x55b8a0 <miSpriteSourceValidate>, CreateWindow = 0x4a5350 <compCreateWindow>, DestroyWindow = 0x4a4190 <compDestroyWindow>, PositionWindow = 0x4a4500 <compPositionWindow>, ChangeWindowAttributes = 0x4a3330 <compChangeWindowAttributes>, RealizeWindow = 0x4a4910 <compRealizeWindow>, UnrealizeWindow = 0x4a4840 <compUnrealizeWindow>, ValidateTree = 0x517ba0 <miValidateTree>, PostValidateTree = 0, ---Type <return> to continue, or q <return> to quit--- WindowExposures = 0x533230 <xf86XVWindowExposures>, CopyWindow = 0x4a5510 <compCopyWindow>, ClearToBackground = 0x563ca0 <miClearToBackground>, ClipNotify = 0x4a4000 <compClipNotify>, RestackWindow = 0, CreatePixmap = 0x7fc1320908f0 <exaCreatePixmap_mixed>, DestroyPixmap = 0x7fc133e83260 <XvDestroyPixmap>, SaveDoomedAreas = 0, RestoreAreas = 0, ExposeCopy = 0, TranslateBackingStore = 0, ClearBackingStore = 0, DrawGuarantee = 0, BackingStoreFuncs = { SaveAreas = 0, RestoreAreas = 0, SetClipmaskRgn = 0, GetImagePixmap = 0, GetSpansPixmap = 0}, RealizeFont = 0x7fc1322ba690 <fbRealizeFont>, UnrealizeFont = 0x7fc1322ba6a0 <fbUnrealizeFont>, ConstrainCursor = 0x4598a0 <miPointerConstrainCursor>, CursorLimits = 0x56a840 <AnimCurCursorLimits>, DisplayCursor = 0x56a180 <AnimCurDisplayCursor>, RealizeCursor = 0x56a360 <AnimCurRealizeCursor>, UnrealizeCursor = 0x56a5b0 <AnimCurUnrealizeCursor>, RecolorCursor = 0x56a420 <AnimCurRecolorCursor>, SetCursorPosition = 0x569a70 <AnimCurSetCursorPosition>, CreateGC = 0x4d6ed0 <damageCreateGC>, CreateColormap = 0x7fc1322a5b00 <fbInitializeColormap>, DestroyColormap = 0x528ec0 <DGADestroyColormap>, InstallColormap = 0x4a3830 <compInstallColormap>, UninstallColormap = 0x528d70 <DGAUninstallColormap>, ---Type <return> to continue, or q <return> to quit--- ListInstalledColormaps = 0x7fc1322a5b40 <fbListInstalledColormaps>, StoreColors = 0x55c590 <miSpriteStoreColors>, ResolveColor = 0x7fc1322a5b10 <fbResolveColor>, BitmapToRegion = 0x7fc13208d9e0 <exaBitmapToRegion>, SendGraphicsExpose = 0x458920 <miSendGraphicsExpose>, BlockHandler = 0x4a3470 <compBlockHandler>, WakeupHandler = 0x4314f0 <NoopDDA>, blockData = 0x0, wakeupData = 0x0, devPrivates = 0x2771250, CreateScreenResources = 0x7fc132db43b0 <RADEONCreateScreenResources_KMS>, ModifyPixmapHeader = 0x7fc132090cb0 <exaModifyPixmapHeader_mixed>, GetWindowPixmap = 0x7fc1322ba9b0 <_fbGetWindowPixmap>, SetWindowPixmap = 0x4d71d0 <damageSetWindowPixmap>, GetScreenPixmap = 0x559840 <miGetScreenPixmap>, SetScreenPixmap = 0x559850 <miSetScreenPixmap>, pScratchPixmap = 0x2a77590, totalPixmapSize = 200, MarkWindow = 0x563b70 <miMarkWindow>, MarkOverlappedWindows = 0x563990 <miMarkOverlappedWindows>, ChangeSaveUnder = 0, PostChangeSaveUnder = 0, ConfigNotify = 0x4a4310 <compConfigNotify>, MoveWindow = 0x4a5290 <compMoveWindow>, ResizeWindow = 0x4a51d0 <compResizeWindow>, GetLayerWindow = 0x5627e0 <miGetLayerWindow>, HandleExposures = 0x563bb0 <miHandleValidateExposures>, ReparentWindow = 0x4a4c50 <compReparentWindow>, ---Type <return> to continue, or q <return> to quit--- SetShape = 0x562a90 <miSetShape>, ChangeBorderWidth = 0x4a5110 <compChangeBorderWidth>, MarkUnrealizedWindow = 0x563dd0 <miMarkUnrealizedWindow>, DeviceCursorInitialize = 0x459640 <miPointerDeviceInitialize>, DeviceCursorCleanup = 0x45a250 <miPointerDeviceCleanup>} (gdb) up #3 0x00007fc132db3623 in radeon_dri2_frame_event_handler (frame=965179, tv_sec=1281901385, tv_usec=296316, event_data=<value optimised out>) at ../../src/radeon_dri2.c:381 381 in ../../src/radeon_dri2.c (gdb) p /x *event $12 = {drawable_id = 0x440002c, client = 0x2c70d30, type = 0x0, frame = 0xeba3b, event_complete = 0x7fc1331ea8e0, event_data = 0x2c79a30, front = 0x2c42a40, back = 0x2c652a0} -------------------------------------------------------------- Try 2: Program received signal SIGSEGV, Segmentation fault. radeon_dri2_copy_region (drawable=0x279ebf0, region=0x7ffff300eba0, dest_buffer=<value optimised out>, src_buffer=<value optimised out>) at ../../src/radeon_dri2.c:287 287 ../../src/radeon_dri2.c: No such file or directory. in ../../src/radeon_dri2.c (gdb) where #0 radeon_dri2_copy_region (drawable=0x279ebf0, region=0x7ffff300eba0, dest_buffer=<value optimised out>, src_buffer=<value optimised out>) at ../../src/radeon_dri2.c:287 #1 0x00007f71a3718623 in radeon_dri2_frame_event_handler (frame=1078245, tv_sec=1281903269, tv_usec=765417, event_data=<value optimised out>) at ../../src/radeon_dri2.c:381 #2 0x00007f71a3d58703 in drmHandleEvent () from /lib/libdrm.so.2 #3 0x000000000043168b in WakeupHandler (result=1, pReadmask=0x7e2700) at ../../dix/dixutils.c:419 #4 0x000000000045b3b7 in WaitForSomething ( pClientsReady=<value optimised out>) at ../../os/WaitFor.c:232 #5 0x000000000042c022 in Dispatch () at ../../dix/dispatch.c:368 #6 0x000000000042184b in main (argc=8, argv=0x7ffff300f4c8, envp=<value optimised out>) at ../../dix/main.c:291 (gdb) p dst_private $1 = (struct dri2_buffer_priv *) 0x15006a00140000 (gdb) p *dst_private Cannot access memory at address 0x15006a00140000 -- repeatable xserver crash using gnome-screensaver-preferences https://bugs.launchpad.net/bugs/618236 You received this bug notification because you are a member of Ubuntu-X, which is subscribed to xserver-xorg-video-ati in ubuntu. _______________________________________________ Mailing list: https://launchpad.net/~ubuntu-x-swat Post to : ubuntu-x-swat@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-x-swat More help : https://help.launchpad.net/ListHelp