[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