[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#651316: libdrm-intel1: X.org crashes when I try to play a video



On Thursday 08 December 2011, Cyril Brulebois wrote:
> Hi Stefan.
> 
> (That upstream bug was a bad lead, upstream didn't realize it was about
> an X server rather than a client crash.)
> 
> Stefan Lippers-Hollmann <s.L-H@gmx.de> (08/12/2011):
> > No change, X is restarting and dumping to kdm within seconds after 
> > displaying any video is started, while reverting the afforementioned 
> > patch still avoids the issue.
> 
> Could you please get a full backtrace (see x.debian.net)?

I hope to have installed all required -dbg packages (libc6-dbg, 
libdrm2-dbg, libdrm-intel1-dbg, libkms1-dbg, xserver-xorg-core-dbg,
xserver-xorg-video-intel-dbg):

unpatched libva1/ libva-x11-1 (1.0.14-1):

# LANG= gdb -c /etc/X11/core /usr/bin/Xorg
GNU gdb (GDB) 7.3-debian
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/Xorg...Reading symbols from /usr/lib/debug/usr/bin/Xorg...done.
done.
[New LWP 3063]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Core was generated by `/usr/bin/X :0 vt7 -br -nolisten tcp -core -auth /var/run/xauth/A:0-CoJICb'.
Program terminated with signal 6, Aborted.
#0  0x00007fba3237f405 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
        in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt full
#0  0x00007fba3237f405 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        pid = <optimized out>
        selftid = <optimized out>
#1  0x00007fba32382680 in *__GI_abort () at abort.c:92
        act = {__sigaction_handler = {sa_handler = 0x7fba3013f7a7, sa_sigaction = 0x7fba3013f7a7}, sa_mask = {__val = {140437684306760, 140734872454256, 1016, 140734872454496, 140437683370966, 206158430232, 140734872454512, 140734872454288, 140437683282824, 206158430256, 140734872454536, 140437750700624, 109664, 3273383998825390688, 8462091486410927422, 140734872465025}}, 
          sa_flags = 843654047, sa_restorer = 0x7fba3013fa10}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007fba323785b1 in *__GI___assert_fail (assertion=0x7fba3013f7a7 "bo_gem->map_count == 0", file=<optimized out>, line=1016, function=0x7fba3013fe70 "drm_intel_gem_bo_map") at assert.c:81
        buf = 0x7fba363e5a50 "X: ../../intel/intel_bufmgr_gem.c:1016: drm_intel_gem_bo_map: Assertion `bo_gem->map_count == 0' failed.\n"
#3  0x00007fba3013cb10 in drm_intel_gem_bo_map (bo=0x7fba36509050, write_enable=1) at ../../intel/intel_bufmgr_gem.c:1016
        mmap_arg = {handle = 911249488, pad = 32698, offset = 252, size = 0, addr_ptr = 140437647249678}
        bufmgr_gem = 0x7fba35ad89e0
        bo_gem = 0x7fba36509050
        set_domain = {handle = 845991520, read_domains = 32698, write_domain = 911249656}
        ret = <optimized out>
        __PRETTY_FUNCTION__ = "drm_intel_gem_bo_map"
#4  0x00007fba3036076a in i965_create_dst_surface_state (scrn=<optimized out>, pixmap=0x7fba35e13570, surf_bo=0x7fba36509050, offset=0) at ../../src/i965_video.c:411
        intel = 0x7fba35acc0a0
        dest_surf_state = <optimized out>
        pixmap_bo = 0x7fba35ae12a0
#5  0x00007fba30362ff7 in Gen6DisplayVideoTextured (scrn=0x7fba35acb370, adaptor_priv=0x7fba35df9500, id=<optimized out>, dstRegion=0x7fff64148a70, width=<optimized out>, height=<optimized out>, video_pitch=272, video_pitch2=544, src_w=544, src_h=576, drw_w=768, drw_h=576, pixmap=0x7fba35e13570) at ../../src/i965_video.c:1884
        intel = 0x7fba35acc0a0
        pbox = <optimized out>
        nbox = <optimized out>
        dxo = <optimized out>
        dyo = <optimized out>
        pix_xoff = <optimized out>
        pix_yoff = <optimized out>
        src_scale_x = <optimized out>
        src_scale_y = <optimized out>
        src_surf = <optimized out>
        n_src_surf = 6
        src_surf_format = 320
        src_surf_base = {0, 0, 391680, 391680, 313344, 313344}
        src_width = {544, 544, 272, 272, 272, 272}
        src_height = {576, 576, 288, 288, 288, 288}
        src_pitch = {544, 544, 272, 272, 272, 272}
        surface_state_binding_table_bo = 0x7fba36509050
        create_dst_surface_state = 0x7fba30360720 <i965_create_dst_surface_state>
        create_src_surface_state = 0x7fba30360f30 <i965_create_src_surface_state>
        emit_video_setup = 0x7fba303616f0 <gen6_emit_video_setup>
#6  0x00007fba3035947b in I830PutImageTextured (scrn=0x7fba35acb370, src_x=0, src_y=<optimized out>, drw_x=<optimized out>, drw_y=<optimized out>, src_w=544, src_h=576, drw_w=768, drw_h=576, id=842094169, buf=0x7fba341bc000 '\020' <repeats 200 times>..., width=544, height=576, sync=0, clipBoxes=0x7fff64148a70, data=0x7fba35df9500, drawable=0x7fba3644e5b0)
    at ../../src/intel_video.c:1574
        intel = 0x7fba35acc0a0
        adaptor_priv = 0x7fba35df9500
        pixmap = 0x7fba35e13570
        dstPitch = 272
        dstPitch2 = 544
        dstBox = {x1 = 516, y1 = 23, x2 = 1284, y2 = 599}
        crtc = 0x7fba35ad93b0
        top = 0
        left = 0
        npixels = 544
        nlines = 576
#7  0x00007fba343bd9ce in xf86XVPutImage (client=<optimized out>, pDraw=0x7fba3644e5b0, pPort=0x7fba35dfa330, pGC=<optimized out>, src_x=<optimized out>, src_y=<optimized out>, src_w=544, src_h=576, drw_x=0, drw_y=0, drw_w=768, drw_h=576, format=0x7fba35dfa0b0, data=0x7fba341bc000 '\020' <repeats 200 times>..., sync=0, width=544, height=576)
    at ../../../../hw/xfree86/common/xf86xv.c:1865
        portPriv = 0x7fba35dfa7c0
        WinRegion = {extents = {x1 = 516, y1 = 23, x2 = 1284, y2 = 599}, data = 0x0}
        ClipRegion = {extents = {x1 = 516, y1 = 23, x2 = 1284, y2 = 599}, data = 0x0}
        WinBox = {x1 = 516, y1 = 23, x2 = 0, y2 = 0}
        ret = <optimized out>
        clippedAway = 0
#8  0x00007fba31455e02 in ProcXvShmPutImage (client=0x7fba363e74a0) at ../../Xext/xvdisp.c:1091
        shmdesc = 0x7fba36450510
        pDraw = 0x7fba3644e5b0
        pPort = 0x7fba35dfa330
        pImage = 0x7fba35dfa0b0
        pGC = 0x7fba36451a40
        status = <optimized out>
        size_needed = <optimized out>
        width = 544
        height = 576
        stuff = 0x7fba3644d5a0
#9  0x00007fba34368fc9 in Dispatch () at ../../dix/dispatch.c:432
        clientReady = 0x7fba3605e300
        result = <optimized out>
        client = 0x7fba363e74a0
        nready = 0
        icheck = 0x7fba3471daf0
        start_tick = 60
#10 0x00007fba3435822a in main (argc=9, argv=<optimized out>, envp=<optimized out>) at ../../dix/main.c:287
        i = <optimized out>
        alwaysCheckForInput = {0, 1}
(gdb)



patched libva1/ libva-x11-1 (1.0.14-1.1):

# LANG= gdb -c /etc/X11/core /usr/bin/Xorg
GNU gdb (GDB) 7.3-debian
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/Xorg...Reading symbols from /usr/lib/debug/usr/bin/Xorg...done.
done.
[New LWP 4639]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Core was generated by `/usr/bin/X :0 vt8 -br -nolisten tcp -core -auth /var/run/xauth/A:0-OkVtdb'.
Program terminated with signal 6, Aborted.
#0  0x00007f12acad0405 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
        in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt full
#0  0x00007f12acad0405 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        pid = <optimized out>
        selftid = <optimized out>
#1  0x00007f12acad3680 in *__GI_abort () at abort.c:92
        act = {__sigaction_handler = {sa_handler = 0x7f12aa8907a7, sa_sigaction = 0x7f12aa8907a7}, sa_mask = {__val = {139718184293192, 140733474827232, 1016, 140733474827472, 139718183357398, 206158430232, 140733474827488, 140733474827264, 139718183269256, 206158430256, 140733474827512, 139718236036880, 111008, 3273383998825390688, 8462091486410927422, 140733474832022}}, 
          sa_flags = -1396821089, sa_restorer = 0x7f12aa890a10}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007f12acac95b1 in *__GI___assert_fail (assertion=0x7f12aa8907a7 "bo_gem->map_count == 0", file=<optimized out>, line=1016, function=0x7f12aa890e70 "drm_intel_gem_bo_map") at assert.c:81
        buf = 0x7f12afd3df10 "X: ../../intel/intel_bufmgr_gem.c:1016: drm_intel_gem_bo_map: Assertion `bo_gem->map_count == 0' failed.\n"
#3  0x00007f12aa88db10 in drm_intel_gem_bo_map (bo=0x7f12afc663e0, write_enable=1) at ../../intel/intel_bufmgr_gem.c:1016
        mmap_arg = {handle = 2940234440, pad = 32530, offset = 4096, size = 1, addr_ptr = 139718153922856}
        bufmgr_gem = 0x7f12af4069e0
        bo_gem = 0x7f12afc663e0
        set_domain = {handle = 0, read_domains = 32530, write_domain = 281440096}
        ret = <optimized out>
        __PRETTY_FUNCTION__ = "drm_intel_gem_bo_map"
#4  0x00007f12aaab1ac3 in intel_alloc_and_map (name=<optimized out>, size=4096, bop=0x7fff10c66f60, virtualp=0x7fff10c66f68, intel=<optimized out>) at ../../src/i965_video.c:392
        bo = 0x7f12afc663e0
#5  0x00007f12aaab444b in Gen6DisplayVideoTextured (scrn=0x7f12af3f9370, adaptor_priv=<optimized out>, id=<optimized out>, dstRegion=0x7fff10c671d0, width=<optimized out>, height=<optimized out>, video_pitch=272, video_pitch2=544, src_w=544, src_h=576, drw_w=768, drw_h=576, pixmap=0x7f12af741570) at ../../src/i965_video.c:1948
        box_y1 = 23
        box_x2 = 1284
        i = <optimized out>
        vb = 0x72c0000000000
        bo_table = {0x0, 0x7f12afd44fe0, 0x7f12afc66740, 0x7f12afc66bc0, 0x7f12afc66d30, 0x7f12afc66e50, 0x7f12afc82820, 0x7f12afc81b00, 0x7f12afd3a770, 0x7f12afc661f0}
        box_x1 = 516
        box_y2 = 599
        vb_bo = 0x220000000000000
        intel = 0x7f12af3fa0a0
        pbox = 0x7fff10c671d8
        nbox = <optimized out>
        dxo = 516
        dyo = 23
        pix_xoff = 0
        pix_yoff = 0
        src_scale_x = 0.00130208337
        src_scale_y = 0.00173611112
        src_surf = <optimized out>
        n_src_surf = 6
        src_surf_format = <optimized out>
        src_surf_base = {0, 0, 391680, 391680, 313344, 313344}
        src_width = {544, 544, 272, 272, 272, 272}
        src_height = {576, 576, 288, 288, 288, 288}
        src_pitch = {544, 544, 272, 272, 272, 272}
        surface_state_binding_table_bo = 0x7f12afc66740
        create_dst_surface_state = <optimized out>
        create_src_surface_state = 0x7f123aaaaaab
        emit_video_setup = 0x7f12aaab26f0 <gen6_emit_video_setup>
#6  0x00007f12aaaaa47b in I830PutImageTextured (scrn=0x7f12af3f9370, src_x=0, src_y=<optimized out>, drw_x=<optimized out>, drw_y=<optimized out>, src_w=544, src_h=576, drw_w=768, drw_h=576, id=842094169, buf=0x7f12ae89a000 '\020' <repeats 200 times>..., width=544, height=576, sync=0, clipBoxes=0x7fff10c671d0, data=0x7f12af727500, drawable=0x7f12afd77ab0)
    at ../../src/intel_video.c:1574
        intel = 0x7f12af3fa0a0
        adaptor_priv = 0x7f12af727500
        pixmap = 0x7f12af741570
        dstPitch = 272
        dstPitch2 = 544
        dstBox = {x1 = 516, y1 = 23, x2 = 1284, y2 = 599}
        crtc = 0x7f12af4073b0
        top = 0
        left = 0
        npixels = 544
        nlines = 576
#7  0x00007f12aeb0e9ce in xf86XVPutImage (client=<optimized out>, pDraw=0x7f12afd77ab0, pPort=0x7f12af728330, pGC=<optimized out>, src_x=<optimized out>, src_y=<optimized out>, src_w=544, src_h=576, drw_x=0, drw_y=0, drw_w=768, drw_h=576, format=0x7f12af7280b0, data=0x7f12ae89a000 '\020' <repeats 200 times>..., sync=0, width=544, height=576)
    at ../../../../hw/xfree86/common/xf86xv.c:1865
        portPriv = 0x7f12af7287c0
        WinRegion = {extents = {x1 = 516, y1 = 23, x2 = 1284, y2 = 599}, data = 0x0}
        ClipRegion = {extents = {x1 = 516, y1 = 23, x2 = 1284, y2 = 599}, data = 0x0}
        WinBox = {x1 = 516, y1 = 23, x2 = 0, y2 = 0}
        ret = <optimized out>
        clippedAway = 0
#8  0x00007f12abba6e02 in ProcXvShmPutImage (client=0x7f12afd774b0) at ../../Xext/xvdisp.c:1091
        shmdesc = 0x7f12afd788f0
        pDraw = 0x7f12afd77ab0
        pPort = 0x7f12af728330
        pImage = 0x7f12af7280b0
        pGC = 0x7f12afc7f600
        status = <optimized out>
        size_needed = <optimized out>
        width = 544
        height = 576
        stuff = 0x7f12afa41b10
#9  0x00007f12aeab9fc9 in Dispatch () at ../../dix/dispatch.c:432
        clientReady = 0x7f12af98c300
        result = <optimized out>
        client = 0x7f12afd774b0
        nready = 0
        icheck = 0x7f12aee6eaf0
        start_tick = 60
#10 0x00007f12aeaa922a in main (argc=9, argv=<optimized out>, envp=<optimized out>) at ../../dix/main.c:287
        i = <optimized out>
        alwaysCheckForInput = {0, 1}
(gdb)

> > I'll look into creating a freedesktop bugzilla account this evening.
> 
> A new bug on bugs.fd.o would be appreciated by upstream, feel free to Cc
> me while opening it so I can track it.

Thanks, I'll do that, once I've created a bugzilla.freedesktop.org 
account and read up how to operate it.

Regards
	Stefan Lippers-Hollmann



Reply to: