Bug 42024 - xorg-server: падение (assert) на системе с GPU Mali
Summary: xorg-server: падение (assert) на системе с GPU Mali
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: xorg-server (show other bugs)
Version: unstable
Hardware: aarch64 Linux
: P5 normal
Assignee: Valery Inozemtsev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-22 17:24 MSK by Alexey Sheplyakov
Modified: 2022-09-14 15:35 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Sheplyakov 2022-02-22 17:24:26 MSK
При запуске lightdm Xorg падает вот так:

[Switching to thread 1 (Thread 0xffff91d1ed00 (LWP 13815))]
#0  __pthread_kill_implementation (threadid=281473128197376, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt
#0  __pthread_kill_implementation (threadid=281473128197376, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x0000ffff91643114 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x0000ffff915fe4bc in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x0000ffff915eb030 in __GI_abort () at abort.c:79
#4  0x0000aaaac72baacc in OsAbort () at utils.c:1353
#5  0x0000aaaac72c0184 in AbortServer () at log.c:879
#6  0x0000aaaac72c10f8 in FatalError (f=f@entry=0xaaaac72f1400 "Caught signal %d (%s). Server aborting\n") at log.c:1017
#7  0x0000aaaac72b7f34 in OsSigHandler (unused=<optimized out>, sip=0xffffcf9fa180, signo=6) at osinit.c:156
#8  OsSigHandler (signo=6, sip=0xffffcf9fa180, unused=<optimized out>) at osinit.c:110
#9  <signal handler called>
#10 __pthread_kill_implementation (threadid=281473128197376, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#11 0x0000ffff91643114 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#12 0x0000ffff915fe4bc in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#13 0x0000ffff915eb030 in __GI_abort () at abort.c:79
#14 0x0000ffff915f7ed0 in __assert_fail_base (fmt=0xffff917100e0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0xffff8fb7d468 "d.pure_integer", 
    file=file@entry=0xffff8fb7d388 "../src/panfrost/util/pan_lower_framebuffer.c", line=line@entry=433, function=function@entry=0xffff8fb7d510 <__PRETTY_FUNCTION__.2> "pan_unpack")
    at assert.c:92
#15 0x0000ffff915f7f40 in __GI___assert_fail (assertion=assertion@entry=0xffff8fb7d468 "d.pure_integer", file=file@entry=0xffff8fb7d388 "../src/panfrost/util/pan_lower_framebuffer.c", 
    line=line@entry=433, function=function@entry=0xffff8fb7d510 <__PRETTY_FUNCTION__.2> "pan_unpack") at assert.c:101
#16 0x0000ffff8f80dc5c in pan_unpack (packed=0xaaaae48f82a8, desc=0xffff8fd88d48 <util_format_descriptions+3528>, b=0xffffcf9fb790) at ../src/panfrost/util/pan_lower_framebuffer.c:433
#17 pan_lower_fb_load (shader=0xaaaae48f8270, quirks=6102, sample=<optimized out>, base=<optimized out>, reorder_comps=<optimized out>, desc=0xffff8fd88d48 <util_format_descriptions+3528>, 
    intr=0xaaaae4799480, b=0xffffcf9fb790) at ../src/panfrost/util/pan_lower_framebuffer.c:563
#18 pan_lower_framebuffer (shader=shader@entry=0xaaaae490cd40, rt_fmts=rt_fmts@entry=0xffffcf9fbf90, raw_fmt_mask=254 '\376', is_blend=true, quirks=quirks@entry=6102)
    at ../src/panfrost/util/pan_lower_framebuffer.c:654
#19 0x0000ffff8f7f70e8 in midgard_compile_shader_nir (nir=nir@entry=0xaaaae490cd40, inputs=inputs@entry=0xffffcf9fbf70, binary=binary@entry=0xaaaae489f680, info=info@entry=0xffffcf9fbfe0)
    at ../src/panfrost/midgard/midgard_compile.c:3094
#20 0x0000ffff8f762d90 in pan_shader_compile_v4 (s=s@entry=0xaaaae490cd40, inputs=inputs@entry=0xffffcf9fbf70, binary=binary@entry=0xaaaae489f680, info=info@entry=0xffffcf9fbfe0)
    at ../src/panfrost/lib/pan_shader.c:199
#21 0x0000ffff8f7507a0 in pan_blend_get_shader_locked_v4 (dev=0xaaaae3c13600, state=<optimized out>, src0_type=nir_type_float32, src1_type=nir_type_float32, rt=<optimized out>)
    at ../src/panfrost/lib/pan_blend.c:750
#22 0x0000ffff8f6faf24 in panfrost_get_blend (batch=batch@entry=0xaaaae3c3adf0, rti=rti@entry=0, bo=bo@entry=0xffffcf9fc630, shader_offset=shader_offset@entry=0xffffcf9fc62c)
    at ../src/gallium/drivers/panfrost/pan_context.c:203
#23 0x0000ffff8f7028c0 in panfrost_emit_frag_shader_meta (batch=0xaaaae3c3adf0) at ../src/gallium/drivers/panfrost/pan_cmdstream.c:606
#24 panfrost_update_state_fs (batch=batch@entry=0xaaaae3c3adf0) at ../src/gallium/drivers/panfrost/pan_cmdstream.c:2630
#25 0x0000ffff8f704c14 in panfrost_direct_draw (batch=batch@entry=0xaaaae3c3adf0, info=info@entry=0xffffcf9fc9f0, drawid_offset=drawid_offset@entry=0, draw=draw@entry=0xffffcf9fcb00)
    at ../src/gallium/drivers/panfrost/pan_cmdstream.c:2864
#26 0x0000ffff8f7050bc in panfrost_draw_vbo (pipe=0xaaaae3c3a8e0, info=0xffffcf9fcce8, drawid_offset=<optimized out>, indirect=<optimized out>, draws=<optimized out>, 
    num_draws=<optimized out>) at ../src/gallium/drivers/panfrost/pan_cmdstream.c:3076
#27 0x0000ffff8ef552e4 in u_vbuf_draw_vbo (mgr=mgr@entry=0xaaaae3c666e0, info=info@entry=0xffffcf9fcce8, drawid_offset=drawid_offset@entry=0, indirect=indirect@entry=0x0, draw=...)
    at ../src/gallium/auxiliary/util/u_vbuf.c:1416
#28 0x0000ffff8eef5ab4 in cso_multi_draw (cso=<optimized out>, info=0xffffcf9fcce8, drawid_offset=<optimized out>, draws=<optimized out>, num_draws=1)
    at ../src/gallium/auxiliary/cso_cache/cso_context.c:1635
#29 0x0000ffff8eacb1d0 in _mesa_draw_arrays (ctx=0xffff8974b010, mode=<optimized out>, start=<optimized out>, count=<optimized out>, numInstances=<optimized out>, 
    baseInstance=<optimized out>) at ../src/mesa/main/draw.c:1319
#30 0x0000ffff9075eb30 in glamor_glyphs_flush (op=3 '\003', src=0xaaaae479e810, dst=0xaaaae490eab0, prog=0xaaaae3c80088, atlas=<optimized out>, nglyph=10) at glamor_composite_glyphs.c:273
#31 0x0000aaaac7231ff0 in damageGlyphs (op=3 '\003', pSrc=0xaaaae479e810, pDst=0xaaaae490eab0, maskFormat=0x0, xSrc=31, ySrc=17, nlist=1, list=0xffffcf9fcf48, glyphs=0xffffcf9fd348)
--Type <RET> for more, q to quit, c to continue without paging--
    at damage.c:579
#32 0x0000aaaac7226770 in ProcRenderCompositeGlyphs (client=0xaaaae46bf040) at render.c:1377
#33 0x0000aaaac7155a8c in Dispatch () at dispatch.c:550
#34 0x0000aaaac7159b90 in dix_main (argc=12, argv=0xffffcf9fddb8, envp=<optimized out>) at main.c:272
#35 0x0000ffff915eb2fc in __libc_start_call_main (main=main@entry=0xaaaac7142a70 <main>, argc=argc@entry=12, argv=argv@entry=0xffffcf9fddb8) at ../sysdeps/nptl/libc_start_call_main.h:58
#36 0x0000ffff915eb3cc in __libc_start_main_impl (main=0xaaaac7142a70 <main>, argc=12, argv=0xffffcf9fddb8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=<optimized out>) at ../csu/libc-start.c:392
#37 0x0000aaaac7142ab0 in _start ()


P.S.

Упал Xorg - поэтому и баг на xorg-server. Но я не уверен, что виноват именно он. Потому что

xinit /usr/bin/xterm -- /usr/bin/Xorg -nolisten tcp vt1 -novtswitch

работает нормально. Вполне может быть, что корень зла в mesa, gtk, lightdm.
Comment 1 Alexey Sheplyakov 2022-02-24 17:48:40 MSK
#32 0x0000aaaac7226770 in ProcRenderCompositeGlyphs (client=0xaaaae46bf040) at render.c:1377
1377	    CompositeGlyphs(stuff->op,
(gdb) list
1372	    if (buffer > end) {
1373	        rc = BadLength;
1374	        goto bail;
1375	    }
1376	
1377	    CompositeGlyphs(stuff->op,
1378	                    pSrc,
1379	                    pDst,
1380	                    pFormat,
1381	                    stuff->xSrc, stuff->ySrc, nlist, listsBase, glyphsBase);
(gdb) print pFormat
$3 = (PictFormatPtr) 0x0
Comment 2 Sergey Bolshakov 2022-03-08 18:02:28 MSK
падает и на mali t604, armh
Comment 3 Valery Inozemtsev 2022-05-26 19:55:48 MSK
похоже уже не актуально, во всяком случае у меня все работает
Comment 4 Alexey Sheplyakov 2022-09-14 15:35:26 MSK
Само починилось. 
xorg-server 21.1.4-alt1
Mesa 22.1.7-alt1