FS#66672 - MESA: GLX failed after recent upgrade

Attached to Project: Arch Linux
Opened by Yifan ZHU (schrodinger) - Saturday, 16 May 2020, 06:10 GMT
Last edited by Doug Newgard (Scimmia) - Saturday, 16 May 2020, 07:48 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Critical
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

glxgears, glxdemo, picom on glx backend and something like gdm will all fail. (with Intel Device 3e94)

In the meanwhile, I failed to start gdm/sddm with nvidia; the screen is blinking so I cannot debug it; not sure whether the failure of nvidia is also related to this problem.

dmesg
[ 436.166778] traps: glxgears[72757] general protection fault ip:7f0f8ffd1995 sp:7fff91c33038 error:0 in iris_dri.so[7f0f8fc8f000+cdb000]
[ 436.166863] audit: type=1701 audit(1589609023.586:360): auid=1000 uid=1000 gid=985 ses=5 subj==unconfined pid=72757 comm="glxgears" exe="/usr/bin/glxgears" sig=11 res=1
[ 436.182937] audit: type=1334 audit(1589609023.602:361): prog-id=38 op=LOAD
[ 436.183107] audit: type=1334 audit(1589609023.602:362): prog-id=39 op=LOAD
[ 436.186753] audit: type=1130 audit(1589609023.605:363): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=systemd-coredump@4-72762-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 436.561552] audit: type=1131 audit(1589609023.980:364): pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='unit=systemd-coredump@4-72762-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 436.648932] audit: type=1334 audit(1589609024.068:365): prog-id=39 op=UNLOAD
[ 436.648940] audit: type=1334 audit(1589609024.068:366): prog-id=38 op=UNLOAD

It can be loaded with on valgrind virtual memory area:

==94801== Memcheck, a memory error detector
==94801== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==94801== Using Valgrind-3.16.0.GIT and LibVEX; rerun with -h for copyright info
==94801== Command: glxgears
==94801==
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
==94801== Conditional jump or move depends on uninitialised value(s)
==94801== at 0x57F6064: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57F5258: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57FB606: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x61D9401: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57AF6D2: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56B3824: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56BE274: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x578F63A: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x10AD9E: ??? (in /usr/bin/glxgears)
==94801== by 0x10A8D8: ??? (in /usr/bin/glxgears)
==94801== by 0x4BE5001: (below main) (in /usr/lib/libc-2.31.so)
==94801==
==94801== Conditional jump or move depends on uninitialised value(s)
==94801== at 0x483972C: malloc (vg_replace_malloc.c:307)
==94801== by 0x5864F4D: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57E311F: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57EB3DE: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x580AFBB: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x55E3F43: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57AF716: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56B3824: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56BE274: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x578F63A: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x10AD9E: ??? (in /usr/bin/glxgears)
==94801== by 0x10A8D8: ??? (in /usr/bin/glxgears)
==94801==
==94801== Conditional jump or move depends on uninitialised value(s)
==94801== at 0x57E312D: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57EB3DE: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x580AFBB: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x55E3F43: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57AF716: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56B3824: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56BE274: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x578F63A: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x10AD9E: ??? (in /usr/bin/glxgears)
==94801== by 0x10A8D8: ??? (in /usr/bin/glxgears)
==94801== by 0x4BE5001: (below main) (in /usr/lib/libc-2.31.so)
==94801==
==94801== Conditional jump or move depends on uninitialised value(s)
==94801== at 0x57FCED7: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x580981B: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x55E3F43: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57AF716: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56B3824: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56BE274: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x578F63A: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x10AD9E: ??? (in /usr/bin/glxgears)
==94801== by 0x10A8D8: ??? (in /usr/bin/glxgears)
==94801== by 0x4BE5001: (below main) (in /usr/lib/libc-2.31.so)
==94801==
==94801== Conditional jump or move depends on uninitialised value(s)
==94801== at 0x57FCEE7: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x580981B: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x55E3F43: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x57AF716: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56B3824: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x56BE274: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x578F63A: ??? (in /usr/lib/dri/iris_dri.so)
==94801== by 0x10AD9E: ??? (in /usr/bin/glxgears)
==94801== by 0x10A8D8: ??? (in /usr/bin/glxgears)
==94801== by 0x4BE5001: (below main) (in /usr/lib/libc-2.31.so)
==94801==
XIO: fatal IO error 62 (Timer expired) on X server ":0"
after 282 requests (209 known processed) with 0 events remaining.
==94801==
==94801== HEAP SUMMARY:
==94801== in use at exit: 2,461,920 bytes in 9,508 blocks
==94801== total heap usage: 23,137 allocs, 13,629 frees, 6,651,246 bytes allocated
==94801==
==94801== LEAK SUMMARY:
==94801== definitely lost: 88 bytes in 3 blocks
==94801== indirectly lost: 272 bytes in 4 blocks
==94801== possibly lost: 1,483,254 bytes in 5,067 blocks
==94801== still reachable: 976,574 bytes in 4,432 blocks
==94801== suppressed: 1,732 bytes in 2 blocks
==94801== Rerun with --leak-check=full to see details of leaked memory
==94801==
==94801== Use --track-origins=yes to see where uninitialised values come from
==94801== For lists of detected and suppressed errors, rerun with: -s
==94801== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 2 from 2)

tested on kernel 5.4 (linux-lily by archlinuxcn) and kernel 5.6.13 (linux-zen)
This task depends upon

Closed by  Doug Newgard (Scimmia)
Saturday, 16 May 2020, 07:48 GMT
Reason for closing:  Duplicate
Additional comments about closing:   FS#66665  and others. Search before opening a ticket.
Comment by Yifan ZHU (schrodinger) - Saturday, 16 May 2020, 06:14 GMT
LLDB:

Process 164394 launched: '/usr/bin/glxgears' (x86_64)
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
Process 164394 stopped
* thread #1, name = 'glxgears', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
frame #0: 0x00007ffff661d995 iris_dri.so`___lldb_unnamed_symbol8338$$iris_dri.so + 5
iris_dri.so`___lldb_unnamed_symbol8338$$iris_dri.so:
-> 0x7ffff661d995 <+5>: movq -0x30(%rsi), %rdx
0x7ffff661d999 <+9>: leaq -0x30(%rsi), %rcx
0x7ffff661d99d <+13>: testq %rdi, %rdi
0x7ffff661d9a0 <+16>: je 0x7ffff661da18 ; <+136>
Comment by Yifan ZHU (schrodinger) - Saturday, 16 May 2020, 06:24 GMT
fixed by 20.0.7-2.

sorry for the noise.

Loading...