ubuntu-x-swat team mailing list archive
-
ubuntu-x-swat team
-
Mailing list archive
-
Message #84611
[Bug 618236] Re: repeatable xserver crash using gnome-screensaver-preferences
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.
References