[Intel-gfx] Patch for crashing intel server
Bas Wijnen
wijnen at debian.org
Sun Oct 13 05:49:04 CEST 2013
On Sat, Oct 12, 2013 at 09:46:14PM +0100, Chris Wilson wrote:
> On Fri, Oct 11, 2013 at 09:24:54PM +0200, Bas Wijnen wrote:
> > Hello,
> >
> > My X server was crashing when playing video, and I wrote a patch to fix
> > it. Please find the background and the patch at
> > http://bugs.debian.org/724944 .
>
> The patch is a shotgun solution, putting NULL pointer checks where the
> pointer is explicitly not allowed to be NULL. I need an actual
> stacktrace to find the root cause.
> -Chris
Sure thing; you can find it attached. Of course it shows when the
segfault is triggered, not when the data became NULL. And that should
be fixed, because even though the server doesn't crash with the patch,
it also doesn't play video.
If you need any more information (like debug statements in the
set_pixmap_private?), please let me know how I can generate it.
Thanks,
Bas
-------------- next part --------------
#0 0xb758f424 in __kernel_vsyscall ()
#1 0xb719380f in __GI_raise (sig=sig at entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#2 0xb7196cc3 in __GI_abort () at abort.c:90
#3 0xb77574a9 in OsAbort () at ../../os/utils.c:1299
#4 0xb7630d07 in ddxGiveUp (error=error at entry=EXIT_ERR_ABORT)
at ../../../../hw/xfree86/common/xf86Init.c:1063
#5 0xb7630da3 in AbortDDX (error=error at entry=EXIT_ERR_ABORT)
at ../../../../hw/xfree86/common/xf86Init.c:1107
#6 0xb775cc41 in AbortServer () at ../../os/log.c:767
#7 0xb775d6be in FatalError (
f=f at entry=0xb7785084 "Caught signal %d (%s). Server aborting\n")
at ../../os/log.c:908
#8 0xb7754d84 in OsSigHandler (signo=11, sip=0xbfbe0f0c, unused=0xbfbe0f8c)
at ../../os/osinit.c:147
#9 <signal handler called>
#10 0xb6f26d79 in intel_pixmap_tiled (pixmap=0xb8945808)
at ../../../src/uxa/intel.h:138
#11 I915DisplayVideoTextured (scrn=0xb83f2f08, adaptor_priv=0xb83eed70,
id=808596553, dstRegion=0xbfbe14a8, width=352, height=288,
video_pitch=176, video_pitch2=352, src_w=352, src_h=288, drw_w=384,
drw_h=288, pixmap=0xb8425d98) at ../../../src/uxa/i915_video.c:156
#12 0xb6f22215 in I830PutImageTextured (scrn=0xb83f2f08, src_x=0, src_y=0,
drw_x=1308, drw_y=192, src_w=352, src_h=288, drw_w=384, drw_h=288,
id=808596553, buf=0xb3140000 <Address 0xb3140000 out of bounds>,
width=352, height=288, sync=0, clipBoxes=0xbfbe14a8, data=0xb83eed70,
drawable=0xb88fad78) at ../../../src/uxa/intel_video.c:1584
#13 0xb764877c in xf86XVPutImage (client=0xb8906010, pDraw=0xb88fad78,
pPort=0xb840ce58, pGC=0xb89206d8, src_x=0, src_y=0, src_w=352, src_h=288,
drw_x=0, drw_y=0, drw_w=384, drw_h=288, format=0xb840ccd0,
data=0xb3140000 <Address 0xb3140000 out of bounds>, sync=0, width=352,
height=288) at ../../../../hw/xfree86/common/xf86xv.c:1827
#14 0xb769304c in XvdiPutImage (client=client at entry=0xb8906010,
pDraw=0xb88fad78, pPort=0xb840ce58, pGC=0xb89206d8, src_x=0, src_y=0,
src_w=352, src_h=288, drw_x=0, drw_y=0, drw_w=384, drw_h=288,
image=image at entry=0xb840ccd0,
data=0xb3140000 <Address 0xb3140000 out of bounds>, sync=0,
width=width at entry=352, height=288) at ../../Xext/xvmain.c:673
#15 0xb7694648 in ProcXvShmPutImage (client=0xb8906010)
at ../../Xext/xvdisp.c:1025
#16 0xb7696dae in ProcXvDispatch (client=0xb8906010)
at ../../Xext/xvdisp.c:1212
#17 0xb75ed35d in Dispatch () at ../../dix/dispatch.c:432
#18 0xb75db38a in main (argc=13, argv=0xbfbe1774, envp=0xbfbe17ac)
at ../../dix/main.c:298
#0 0xb758f424 in __kernel_vsyscall ()
No symbol table info available.
#1 0xb719380f in __GI_raise (sig=sig at entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = <optimized out>
resultvar = <optimized out>
pid = -1221525504
selftid = 29720
#2 0xb7196cc3 in __GI_abort () at abort.c:90
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0xbfbe0db0,
sa_sigaction = 0xbfbe0db0}, sa_mask = {__val = {3078486656,
3073441792, 171515904, 3076194304, 3076196648, 5, 3078438944,
3076120729, 3076197088, 3071376880, 1, 5, 0, 0, 0, 0, 0, 0, 0,
3076259256, 0, 0, 0, 3071717608, 0, 0, 0, 3078438912, 1,
3078475476, 3078475380, 3076146208}}, sa_flags = -1216480640,
sa_restorer = 0xb7196b80 <__GI_abort>}
sigs = {__val = {32, 0 <repeats 31 times>}}
#3 0xb77574a9 in OsAbort () at ../../os/utils.c:1299
No locals.
#4 0xb7630d07 in ddxGiveUp (error=error at entry=EXIT_ERR_ABORT)
at ../../../../hw/xfree86/common/xf86Init.c:1063
i = <optimized out>
#5 0xb7630da3 in AbortDDX (error=error at entry=EXIT_ERR_ABORT)
at ../../../../hw/xfree86/common/xf86Init.c:1107
i = <optimized out>
#6 0xb775cc41 in AbortServer () at ../../os/log.c:767
No locals.
#7 0xb775d6be in FatalError (
f=f at entry=0xb7785084 "Caught signal %d (%s). Server aborting\n")
at ../../os/log.c:908
args = 0xbfbe0ee4 "\v"
args2 = 0xbfbe0ee4 "\v"
beenhere = 1
#8 0xb7754d84 in OsSigHandler (signo=11, sip=0xbfbe0f0c, unused=0xbfbe0f8c)
at ../../os/osinit.c:147
unused = 0xbfbe0f8c
sip = 0xbfbe0f0c
signo = 11
#9 <signal handler called>
No symbol table info available.
#10 0xb6f26d79 in intel_pixmap_tiled (pixmap=0xb8945808)
at ../../../src/uxa/intel.h:138
No locals.
#11 I915DisplayVideoTextured (scrn=0xb83f2f08, adaptor_priv=0xb83eed70,
id=808596553, dstRegion=0xbfbe14a8, width=352, height=288,
video_pitch=176, video_pitch2=352, src_w=352, src_h=288, drw_w=384,
drw_h=288, pixmap=0xb8425d98) at ../../../src/uxa/i915_video.c:156
ms3 = <optimized out>
s5 = <optimized out>
tiling = <optimized out>
pbox = 0xbfbe14a8
nbox_total = 0
nbox_this_time = 1
dxo = 1308
dyo = 192
pix_xoff = -1308
pix_yoff = -192
target = 0xb8945808
#12 0xb6f22215 in I830PutImageTextured (scrn=0xb83f2f08, src_x=0, src_y=0,
drw_x=1308, drw_y=192, src_w=352, src_h=288, drw_w=384, drw_h=288,
id=808596553, buf=0xb3140000 <Address 0xb3140000 out of bounds>,
width=352, height=288, sync=0, clipBoxes=0xbfbe14a8, data=0xb83eed70,
drawable=0xb88fad78) at ../../../src/uxa/intel_video.c:1584
adaptor_priv = 0xb83eed70
dstPitch = 176
dstPitch2 = 352
dstBox = {x1 = 1308, y1 = 192, x2 = 1692, y2 = 480}
crtc = 0xb83e8930
top = 0
left = 0
npixels = 352
nlines = 288
#13 0xb764877c in xf86XVPutImage (client=0xb8906010, pDraw=0xb88fad78,
pPort=0xb840ce58, pGC=0xb89206d8, src_x=0, src_y=0, src_w=352, src_h=288,
drw_x=0, drw_y=0, drw_w=384, drw_h=288, format=0xb840ccd0,
data=0xb3140000 <Address 0xb3140000 out of bounds>, sync=0, width=352,
height=288) at ../../../../hw/xfree86/common/xf86xv.c:1827
portPriv = 0xb83ecde8
WinRegion = {extents = {x1 = 1308, y1 = 192, x2 = 1692, y2 = 480},
data = 0x0}
ClipRegion = {extents = {x1 = 1308, y1 = 192, x2 = 1692, y2 = 480},
data = 0x0}
WinBox = {x1 = 1308, y1 = 192, x2 = 1692, y2 = <optimized out>}
ret = <optimized out>
clippedAway = 0
#14 0xb769304c in XvdiPutImage (client=client at entry=0xb8906010,
pDraw=0xb88fad78, pPort=0xb840ce58, pGC=0xb89206d8, src_x=0, src_y=0,
src_w=352, src_h=288, drw_x=0, drw_y=0, drw_w=384, drw_h=288,
image=image at entry=0xb840ccd0,
data=0xb3140000 <Address 0xb3140000 out of bounds>, sync=0,
width=width at entry=352, height=288) at ../../Xext/xvmain.c:673
No locals.
#15 0xb7694648 in ProcXvShmPutImage (client=0xb8906010)
at ../../Xext/xvdisp.c:1025
shmdesc = 0xb8932e98
pDraw = 0xb88fad78
pPort = 0xb840ce58
pImage = 0xb840ccd0
pGC = 0xb89206d8
status = <optimized out>
size_needed = <optimized out>
i = <optimized out>
width = 352
height = 288
stuff = 0xb891f0b8
#16 0xb7696dae in ProcXvDispatch (client=0xb8906010)
at ../../Xext/xvdisp.c:1212
stuff = 0xb891f0b8
#17 0xb75ed35d in Dispatch () at ../../dix/dispatch.c:432
clientReady = 0xb85d0d88
result = <optimized out>
client = 0xb8906010
nready = 0
icheck = 0xb77e1438 <checkForInput>
start_tick = 1540
#18 0xb75db38a in main (argc=13, argv=0xbfbe1774, envp=0xbfbe17ac)
at ../../dix/main.c:298
i = <optimized out>
alwaysCheckForInput = {0, 1}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20131013/db1ca5b5/attachment.sig>
More information about the Intel-gfx
mailing list