[Bug 77107] New: Xorg freeze/crash when firefox opens a large image

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Apr 6 08:29:36 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=77107

          Priority: medium
            Bug ID: 77107
          Assignee: xorg-driver-ati at lists.x.org
           Summary: Xorg freeze/crash when firefox opens a large image
        QA Contact: xorg-team at lists.x.org
          Severity: normal
    Classification: Unclassified
                OS: Linux (All)
          Reporter: trek00 at inbox.ru
          Hardware: x86 (IA32)
            Status: NEW
           Version: 7.7 (2011)
         Component: Driver/Radeon
           Product: xorg

Xorg freezes (or crashes) when firefox opens a large image and the mouse is
moving. The screen goes black and the only method to regain the control of the
system is using the magic ctrl+alt+SysRq+k, that kills the running process.

The system specs are:
- X.Org X Server version 1.12.4 (1.12.4-6+deb7u2)
- Debian version 7.4 (wheezy) i386
- CPU AMD Athlon XP 2000+
- graphic card ATI Radeon VE/7000 QY (AGP) (ChipID = 0x5159)


The exact sequence to reproduce this bug is:
- open firefox and load a large image
(http://geography.oii.ox.ac.uk/wp-content/uploads/2014/04/InternetTube_v2-01.png
that is 3508x2303 pixels)
- when loading the image, continuously move the mouse pointer until the screen
goes black (without this step all runs fine)


Normally no backtrace is found in the log file:
[ 10381.013] [mi] EQ overflowing.  Additional events will be discarded until
existing events are processed.
[ 10381.013] 
[ 10381.013] Backtrace:
[ 10381.263] 
[ 10381.263] Backtrace:


But luckily I got this log file (only once):
[  9315.836] [mi] EQ overflowing.  Additional events will be discarded until
existing events are processed.
[  9315.836] 
[  9315.836] Backtrace:
[  9315.837] 0: /usr/bin/X (xorg_backtrace+0x49) [0xb77257b9]
[  9315.837] 1: /usr/bin/X (mieqEnqueue+0x22b) [0xb77040ab]
[  9315.837] 2: /usr/bin/X (0xb75a8000+0x51405) [0xb75f9405]
[  9315.837] 3: /usr/bin/X (xf86PostMotionEventM+0x24b) [0xb763356b]
[  9315.837] 4: /usr/lib/xorg/modules/input/evdev_drv.so (0xb69af000+0x35ad)
[0xb69b25ad]
[  9315.837] 5: /usr/lib/xorg/modules/input/evdev_drv.so (0xb69af000+0x4a2c)
[0xb69b3a2c]
[  9315.837] 6: /usr/bin/X (0xb75a8000+0x7ac01) [0xb7622c01]
[  9315.837] 7: /usr/bin/X (0xb75a8000+0xa094a) [0xb764894a]
[  9315.837] 8: (vdso) (__kernel_sigreturn+0x0) [0xb7589400]
[  9315.837] 9: (vdso) (__kernel_vsyscall+0x10) [0xb7589424]
[  9315.837] 10: /lib/i386-linux-gnu/i686/cmov/libc.so.6 (munmap+0x16)
[0xb7307396]
[  9315.837] 11: /usr/lib/i386-linux-gnu/libdrm_radeon.so.1 (0xb6f09000+0x1fce)
[0xb6f0afce]
[  9315.837] 12: /usr/lib/i386-linux-gnu/libdrm_radeon.so.1
(radeon_bo_unref+0x1a) [0xb6f0c50a]
[  9315.838] 13: /usr/lib/i386-linux-gnu/libdrm_radeon.so.1
(radeon_cs_space_reset_bos+0x35) [0xb6f0c3f5]
[  9315.838] 14: /usr/lib/xorg/modules/drivers/radeon_drv.so
(0xb6f20000+0x9c98d) [0xb6fbc98d]
[  9315.838] 15: /usr/lib/xorg/modules/libexa.so (0xb6ef1000+0xab13)
[0xb6efbb13]
[  9315.838] 16: /usr/bin/X (0xb75a8000+0x16c69f) [0xb771469f]
[  9315.838] 17: /usr/bin/X (0xb75a8000+0xc8d26) [0xb7670d26]
[  9315.838] 18: /usr/bin/X (0xb75a8000+0x39123) [0xb75e1123]
[  9315.838] 19: /usr/bin/X (0xb75a8000+0x3c375) [0xb75e4375]
[  9315.838] 20: /usr/bin/X (0xb75a8000+0x29e95) [0xb75d1e95]
[  9315.838] 21: /lib/i386-linux-gnu/i686/cmov/libc.so.6
(__libc_start_main+0xe6) [0xb724ae46]
[  9315.838] 22: /usr/bin/X (0xb75a8000+0x2a1e9) [0xb75d21e9]
[  9315.838] 
[  9315.838] [mi] These backtraces from mieqEnqueue may point to a culprit
higher up the stack.
[  9315.838] [mi] mieq is *NOT* the cause.  It is a victim.
[  9316.240] [mi] EQ overflow continuing.  100 events have been dropped.
[  9316.240] 
[  9316.240] Backtrace:
[  9316.240] 0: /usr/bin/X (xorg_backtrace+0x49) [0xb77257b9]
[  9316.240] 1: /usr/bin/X (mieqEnqueue+0xfb) [0xb7703f7b]
[  9316.240] 2: /usr/bin/X (0xb75a8000+0x51405) [0xb75f9405]
[  9316.241] 3: /usr/bin/X (xf86PostMotionEventM+0x24b) [0xb763356b]
[  9316.241] 4: /usr/lib/xorg/modules/input/evdev_drv.so (0xb69af000+0x35ad)
[0xb69b25ad]
[  9316.241] 5: /usr/lib/xorg/modules/input/evdev_drv.so (0xb69af000+0x4a2c)
[0xb69b3a2c]
[  9316.241] 6: /usr/bin/X (0xb75a8000+0x7ac01) [0xb7622c01]
[  9316.241] 7: /usr/bin/X (0xb75a8000+0xa094a) [0xb764894a]
[  9316.241] 8: (vdso) (__kernel_sigreturn+0x0) [0xb7589400]
[  9316.241] 9: /usr/bin/X (0xb75a8000+0x1816a0) [0xb77296a0]
[  9316.241] 10: (vdso) (__kernel_sigreturn+0x0) [0xb7589400]
[  9316.241] 11: /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb7234000+0x7a9b6)
[0xb72ae9b6]
[  9316.241] 
[  9316.636] [mi] EQ overflow continuing.  200 events have been dropped.
[  9316.636] 
[  9316.636] Backtrace:
[  9316.890] 
[  9316.890] Backtrace:


Here the backtrace with gdb attached to the X process:
Program received signal SIGSEGV, Segmentation fault.
uw_frame_state_for (context=context at entry=0xbff7285c, fs=fs at entry=0xbff728dc)
at ../../../src/libgcc/unwind-dw2.c:1187
1187    ../../../src/libgcc/unwind-dw2.c: No such file or directory.
#0  uw_frame_state_for (context=context at entry=0xbff7285c,
fs=fs at entry=0xbff728dc) at ../../../src/libgcc/unwind-dw2.c:1187
        fde = 0x0
        cie = <optimized out>
        aug = <optimized out>
        insn = <optimized out>
        end = <optimized out>
#1  0xb715a9da in _Unwind_Backtrace (trace=0xb731f9b0 <backtrace_helper>,
trace_argument=0xbff729b8) at ../../../src/libgcc/unwind.inc:290
        fs = {regs = {reg = {{loc = {reg = 0, offset = 0, exp = 0x0}, how =
REG_UNSAVED} <repeats 18 times>}, prev = 0x0, cfa_offset = 0, cfa_reg = 0,
cfa_exp = 0x0, cfa_how = CFA_UNSET}, pc = 0x0, personality = 0, data_align = 0,
code_align = 0, retaddr_column = 0, fde_encoding = 0 '\000', lsda_encoding = 0
'\000', saw_z = 0 '\000', signal_frame = 0 '\000', eh_ptr = 0x0}
        context = {reg = {0xbff72f80, 0xbff72f7c, 0xbff72f78, 0xbff72f74, 0x0,
0xbff72f6c, 0xbff72f68, 0xbff72f64, 0xbff73498, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, cfa = 0xbff7349c, ra = 0x6e00, lsda = 0x0, bases = {tbase =
0x0, dbase = 0xb7393ff4, func = 0xb72ae970}, flags = 1073741824, version = 0,
args_size = 0, by_value = '\000' <repeats 17 times>}
        code = <optimized out>
#2  0xb731fba5 in *__GI___backtrace (array=array at entry=0xbff72a20,
size=size at entry=64) at ../sysdeps/i386/backtrace.c:127
        arg = {array = 0xbff72a20, cnt = 10, size = 64, lastebp = 0xb811f800,
lastesp = 0xbff73498}
        once = 2
#3  0xb77257b9 in xorg_backtrace () at ../../os/backtrace.c:50
        array = {0xb77257b9, 0xb7703f7b, 0xb75f9405, 0xb763356b, 0xb69b25ad,
0xb69b3a2c, 0xb7622c01, 0xb764894a, 0xb7589400, 0xb72ae9b6, 0x40792d90, 0x0
<repeats 28 times>, 0x1161f000, 0x0, 0x0, 0x0, 0xb7791ff4, 0xb710a008, 0x2e,
0xb7f89fb0, 0xb77314a3, 0x8, 0xffffffff, 0xb7752620, 0xbff72b44, 0x0, 0x0,
0xb7791ff4, 0xb77314db, 0xffffffff, 0xb7752620, 0xbff72b44, 0x0, 0x0, 0x0,
0xb7791ff4, 0xb7730d93}
        mod = <optimized out>
        size = <optimized out>
        i = <optimized out>
        info = {dli_fname = 0x0, dli_fbase = 0x0, dli_sname = 0x0, dli_saddr =
0x0}
#4  0xb7703f7b in mieqEnqueue (pDev=pDev at entry=0xb7f89fb0,
e=e at entry=0xb710a008) at ../../mi/mieq.c:297
        oldtail = 46
        evt = <optimized out>
        isMotion = <optimized out>
        evlen = <optimized out>
        time = <optimized out>
#5  0xb75f9405 in queueEventList (device=0xb7f89fb0, device at entry=0x2,
events=<optimized out>, nevents=2) at ../../dix/getevents.c:1002
        i = <optimized out>
#6  0xb75fb698 in QueuePointerEvents (device=0x2, device at entry=0xb7f89fb0,
type=type at entry=6, buttons=buttons at entry=0, flags=10,
mask=mask at entry=0xb7f8ade0) at ../../dix/getevents.c:1262
        nevents = <optimized out>
#7  0xb763356b in xf86PostMotionEventM (mask=0xb7f8ade0, is_absolute=0,
device=0xb7f89fb0) at ../../../../hw/xfree86/common/xf86Xinput.c:1161
        flags = <optimized out>
#8  xf86PostMotionEventM (device=0xb7f89fb0, is_absolute=0, mask=0xb7f8ade0) at
../../../../hw/xfree86/common/xf86Xinput.c:1146
No locals.
#9  0xb69b25ad in ?? () from /usr/lib/xorg/modules/input/evdev_drv.so
No symbol table info available.
#10 0xb69b3a2c in ?? () from /usr/lib/xorg/modules/input/evdev_drv.so
No symbol table info available.
#11 0xb7622c01 in xf86SigioReadInput (fd=14, closure=0xb7f80680) at
../../../../hw/xfree86/common/xf86Events.c:298
        errno_save = 0
        pInfo = 0xb7f80680
#12 0xb764894a in xf86SIGIO (sig=29) at
../../../../../hw/xfree86/os-support/linux/../shared/sigio.c:108
        i = <optimized out>
        ready = {fds_bits = {16384, 0 <repeats 31 times>}}
        to = {tv_sec = 0, tv_usec = 0}
        save_errno = 0
        r = <optimized out>
#13 <signal handler called>
No symbol table info available.
#14 __memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:75
No locals.
#15 0x00006e00 in ?? ()
No symbol table info available.
#16 0xb6f4a11d in RADEONCopySwap (dst=dst at entry=0xb811f800
"\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377
\037#\377 \037#\377 \037#\377"..., src=0xb652fe00 <Address 0xb652fe00 out of
bounds>, size=size at entry=14032, swap=swap at entry=0) at
../../src/radeon_accel.c:993
No locals.
#17 0xb6fbc8d4 in RADEONDownloadFromScreenCS (pSrc=0xb804d7d8, x=0, y=1864,
w=14032, h=<optimized out>, dst=0xb811f800
"\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377
\037#\377 \037#\377 \037#\377"..., dst_pitch=14032) at
../../src/radeon_exa_funcs.c:665
        pScrn = 0x36d0
        info = <optimized out>
        driver_priv = 0xb7fd6810
        scratch = 0xb80e2ca0
        copy_src = 0xb80e2ca0
        size = 3088188300
        datatype = <optimized out>
        src_domain = 4
        src_pitch_offset = 922746880
        bpp = 32
        scratch_pitch = 14080
        copy_pitch = <optimized out>
        ret = <optimized out>
        flush = <optimized out>
        r = 1
        __head = <optimized out>
        __expected = <optimized out>
        __count = <optimized out>
        __func__ = "RADEONDownloadFromScreenCS"
#18 0xb6efbb13 in exaGetImage (pDrawable=0xb804d7d8, x=0, y=1864, w=3508, h=4,
format=2, planeMask=4294967295, d=0xb8118a60
"\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377
\037#\377 \037#\377 \037#\377"...) at ../../exa/exa_accel.c:1290
        pExaScr = 0x36d0
        pPix = <optimized out>
        xoff = 0
        yoff = 0
        ok = <optimized out>
#19 0xb771469f in miSpriteGetImage (pDrawable=0xb804d7d8, sx=0, sy=1864,
w=3508, h=4, format=2, planemask=4294967295, pdstLine=0xb8118a60
"\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377
\037#\377 \037#\377 \037#\377"...) at ../../mi/misprite.c:413
        pScreen = 0xb7df0348
        pDev = <optimized out>
        pCursorInfo = <optimized out>
        pPriv = 0xb7df2bc8
#20 0xb7670d26 in compGetImage (pDrawable=0xb804d7d8, sx=0, sy=1864, w=3508,
h=4, format=2, planemask=4294967295, pdstLine=0xb8118a60
"\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377
\037#\377 \037#\377 \037#\377"...) at ../../composite/compinit.c:148
        pScreen = 0xb7df0348
        cs = 0xb7e17828
#21 0xb75e1123 in DoGetImage (planemask=4294967295, height=4, width=14032,
y=1864, x=0, drawable=<optimized out>, format=2, client=0xb7ff3778,
im_return=<optimized out>) at ../../dix/dispatch.c:2128
        linesPerBuf = 4
        linesDone = 1864
        rely = 14032
        nlines = 4
        rc = 0
        widthBytesLine = 14032
        xgi = {type = 1 '\001', depth = 24 '\030', sequenceNumber = 10335,
length = 8078924, visual = 0, pad3 = 0, pad4 = 0, pad5 = 0, pad6 = 0, pad7 = 0}
        length = <optimized out>
        pVisibleRegion = 0x0
        pDraw = 0xb804d7d8
        pBoundingDraw = 0x0
        relx = 4
        plane = 1864
        pBuf = 0xb8118a60
"\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377\363\363\362\377
\037#\377 \037#\377 \037#\377"...
#22 ProcGetImage (client=0xb7ff3778) at ../../dix/dispatch.c:2205
        stuff = <optimized out>
#23 0xb75e4375 in Dispatch () at ../../dix/dispatch.c:428
        clientReady = 0xb7f76208
        result = <optimized out>
        client = 0xb7ff3778
        nready = 0
        icheck = 0xb779e118
        start_tick = 600
#24 0xb75d1e95 in main (argc=5, argv=0xbff73854, envp=0xbff7386c) at
../../dix/main.c:288
        i = <optimized out>
        alwaysCheckForInput = {0, 1}

Program received signal SIGSEGV, Segmentation fault.
uw_frame_state_for (context=context at entry=0xbff7216c, fs=fs at entry=0xbff721ec)
at ../../../src/libgcc/unwind-dw2.c:1187
1187    in ../../../src/libgcc/unwind-dw2.c

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-driver-ati/attachments/20140406/0a3303a2/attachment-0001.html>


More information about the xorg-driver-ati mailing list