mesa 18.3.1 segfault while starting gnome-shell or weston
VestniK opened this issue · 4 comments
I can not start neither gnome-shell(wayland) nor weston (I have never tried to run X on this board don't know if it's broken too or not) after recent mesa package upgrade on my raspberry pi model 2B running ArchLinux Arm. Both compositors failing with segfault inside the vc4_dri.so
I have played with apitrace and gdb to gather information which I hope might be helpful for investigation.
System details:
[alarm@alarmpi ~]$ pacman -Qo /usr/lib/dri/vc4_dri.so
/usr/lib/dri/vc4_dri.so is owned by mesa 18.3.1-1
[alarm@alarmpi ~]$ uname -a
Linux alarmpi 4.14.93-2-ARCH #1 SMP Wed Jan 16 15:44:12 UTC 2019 armv7l GNU/Linux
apitraces:
traces.zip
Weston segfault details:
(gdb) thread apply all bt
Thread 1 (Thread 0x7688ce70 (LWP 254)):
#0 0x76087e7c in () at /usr/lib/dri/vc4_dri.so
#1 0x00000010 in ()
(gdb) disassemble 0x76087da0,0x76087eb4
Dump of assembler code from 0x76087da0 to 0x76087eb4:
0x76087da0: add sp, sp, #12
0x76087da4: pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
0x76087da8: push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
0x76087dac: sub sp, sp, #12
0x76087db0: ldr lr, [sp, #48] ; 0x30
0x76087db4: ldr r12, [sp, #52] ; 0x34
0x76087db8: sub lr, lr, #1
0x76087dbc: cmp lr, #7
0x76087dc0: addls pc, pc, lr, lsl #2
0x76087dc4: b 0x7608803c
0x76087dc8: b 0x76087f8c
0x76087dcc: b 0x76087ebc
0x76087dd0: b 0x7608803c
0x76087dd4: b 0x76087de8
0x76087dd8: b 0x7608803c
0x76087ddc: b 0x7608803c
0x76087de0: b 0x7608803c
0x76087de4: b 0x7608803c
0x76087de8: ldr r5, [r12]
0x76087dec: ldrsh r4, [r12, #4]
0x76087df0: tst r5, #3
0x76087df4: ldrsh lr, [r12, #12]
0x76087df8: bne 0x760881c8
0x76087dfc: tst r4, #3
0x76087e00: bne 0x760881c8
0x76087e04: ldr r8, [r12, #8]
0x76087e08: ands r10, r8, #3
0x76087e0c: bne 0x760881c8
0x76087e10: tst lr, #3
0x76087e14: bne 0x760881c8
0x76087e18: cmp lr, #0
0x76087e1c: beq 0x76087eb4
0x76087e20: sub r6, r8, #1
0x76087e24: lsl r11, r3, #2
0x76087e28: mul r12, r4, r1
0x76087e2c: lsr r4, r6, #2
0x76087e30: add r4, r4, #1
0x76087e34: lsl r1, r1, #2
0x76087e38: lsl r5, r5, #6
0x76087e3c: str r5, [sp]
0x76087e40: lsl r4, r4, #4
0x76087e44: str r4, [sp, #4]
0x76087e48: cmp r8, #0
0x76087e4c: beq 0x76087ea0
0x76087e50: ldr r4, [sp, #4]
0x76087e54: ldr r6, [sp]
0x76087e58: add r9, r4, r2
0x76087e5c: mov r4, r2
0x76087e60: add r5, r12, r6, lsr #2
0x76087e64: add r7, r4, #8
0x76087e68: add r5, r0, r5
0x76087e6c: vld1.8 {d0}, [r4], r3
0x76087e70: vld1.8 {d1}, [r7], r3
0x76087e74: vld1.8 {d2}, [r4], r3
0x76087e78: vld1.8 {d3}, [r7], r3
=> 0x76087e7c: vld1.8 {d4}, [r4], r3
0x76087e80: vld1.8 {d5}, [r7], r3
0x76087e84: vld1.8 {d6}, [r4]
0x76087e88: vld1.8 {d7}, [r7]
0x76087e8c: vstmia r5, {d0-d7}
0x76087e90: add r4, r4, #16
0x76087e94: add r6, r6, #256 ; 0x100
0x76087e98: cmp r9, r4
0x76087e9c: bne 0x76087e60
0x76087ea0: add r10, r10, #4
0x76087ea4: add r2, r2, r11
0x76087ea8: cmp r10, lr
0x76087eac: add r12, r12, r1
0x76087eb0: bcc 0x76087e48
End of assembler dump.
(gdb) p/x $r4
$1 = 0x70138520
(gdb) p/x $r3
$2 = 0x1e00
Gnome shell crash details:
(gdb) thread apply all bt
Thread 9 (Thread 0x69f33040 (LWP 1533)):
#0 0x75ff9138 in pthread_cond_wait@@GLIBC_2.4 () at /usr/lib/libpthread.so.0
#1 0x741f6c50 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /usr/lib/libmozjs-60.so.0
#2 0x741f6e54 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /usr/lib/libmozjs-60.so.0
#3 0x73f79528 in () at /usr/lib/libmozjs-60.so.0
Thread 8 (Thread 0x69b31040 (LWP 1535)):
#0 0x75ff9138 in pthread_cond_wait@@GLIBC_2.4 () at /usr/lib/libpthread.so.0
#1 0x741f6c50 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /usr/lib/libmozjs-60.so.0
#2 0x741f6e54 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /usr/lib/libmozjs-60.so.0
#3 0x73f79528 in () at /usr/lib/libmozjs-60.so.0
Thread 7 (Thread 0x6efff040 (LWP 1514)):
#0 0x75f6c688 in poll () at /usr/lib/libc.so.6
#1 0x76ac7624 in () at /usr/lib/libglib-2.0.so.0
Thread 6 (Thread 0x6a134040 (LWP 1532)):
#0 0x75ff9138 in pthread_cond_wait@@GLIBC_2.4 () at /usr/lib/libpthread.so.0
#1 0x741f6c50 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /usr/lib/libmozjs-60.so.0
#2 0x741f6e54 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /usr/lib/libmozjs-60.so.0
#3 0x73f79528 in () at /usr/lib/libmozjs-60.so.0
Thread 5 (Thread 0x703ff040 (LWP 1512)):
#0 0x75f6c688 in poll () at /usr/lib/libc.so.6
#1 0x76ac7624 in () at /usr/lib/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
Thread 4 (Thread 0x69d32040 (LWP 1534)):
#0 0x75ff9138 in pthread_cond_wait@@GLIBC_2.4 () at /usr/lib/libpthread.so.0
#1 0x741f6c50 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /usr/lib/libmozjs-60.so.0
#2 0x741f6e54 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /usr/lib/libmozjs-60.so.0
#3 0x73f79528 in () at /usr/lib/libmozjs-60.so.0
Thread 3 (Thread 0x6f9ff040 (LWP 1513)):
#0 0x75f730fc in syscall () at /usr/lib/libc.so.6
#1 0x76b16b94 in g_cond_wait_until () at /usr/lib/libglib-2.0.so.0
#2 0x76a95d64 in () at /usr/lib/libglib-2.0.so.0
Thread 2 (Thread 0x70d0c040 (LWP 1511)):
#0 0x75f6c688 in poll () at /usr/lib/libc.so.6
#1 0x76ac7624 in () at /usr/lib/libglib-2.0.so.0
Thread 1 (Thread 0x70d0f280 (LWP 1509)):
#0 0x6e2a7e8c in () at /usr/lib/dri/vc4_dri.so
#1 0x00000010 in ()
(gdb) disassemble 0x6e2a7da0,0x6e2a7e8cb4
Dump of assembler code from 0x6e2a7da0 to 0x2a7e8cb4:
End of assembler dump.
(gdb) disassemble 0x6e2a7da0,0x6e2a7eb4
Dump of assembler code from 0x6e2a7da0 to 0x6e2a7eb4:
0x6e2a7da0: add sp, sp, #12
0x6e2a7da4: pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
0x6e2a7da8: push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
0x6e2a7dac: sub sp, sp, #12
0x6e2a7db0: ldr lr, [sp, #48] ; 0x30
0x6e2a7db4: ldr r12, [sp, #52] ; 0x34
0x6e2a7db8: sub lr, lr, #1
0x6e2a7dbc: cmp lr, #7
0x6e2a7dc0: addls pc, pc, lr, lsl #2
0x6e2a7dc4: b 0x6e2a803c
0x6e2a7dc8: b 0x6e2a7f8c
0x6e2a7dcc: b 0x6e2a7ebc
0x6e2a7dd0: b 0x6e2a803c
0x6e2a7dd4: b 0x6e2a7de8
0x6e2a7dd8: b 0x6e2a803c
0x6e2a7ddc: b 0x6e2a803c
0x6e2a7de0: b 0x6e2a803c
0x6e2a7de4: b 0x6e2a803c
0x6e2a7de8: ldr r5, [r12]
0x6e2a7dec: ldrsh r4, [r12, #4]
0x6e2a7df0: tst r5, #3
0x6e2a7df4: ldrsh lr, [r12, #12]
0x6e2a7df8: bne 0x6e2a81c8
0x6e2a7dfc: tst r4, #3
0x6e2a7e00: bne 0x6e2a81c8
0x6e2a7e04: ldr r8, [r12, #8]
0x6e2a7e08: ands r10, r8, #3
0x6e2a7e0c: bne 0x6e2a81c8
0x6e2a7e10: tst lr, #3
0x6e2a7e14: bne 0x6e2a81c8
0x6e2a7e18: cmp lr, #0
0x6e2a7e1c: beq 0x6e2a7eb4
0x6e2a7e20: sub r6, r8, #1
0x6e2a7e24: lsl r11, r3, #2
0x6e2a7e28: mul r12, r4, r1
0x6e2a7e2c: lsr r4, r6, #2
0x6e2a7e30: add r4, r4, #1
0x6e2a7e34: lsl r1, r1, #2
0x6e2a7e38: lsl r5, r5, #6
0x6e2a7e3c: str r5, [sp]
0x6e2a7e40: lsl r4, r4, #4
0x6e2a7e44: str r4, [sp, #4]
0x6e2a7e48: cmp r8, #0
0x6e2a7e4c: beq 0x6e2a7ea0
0x6e2a7e50: ldr r4, [sp, #4]
0x6e2a7e54: ldr r6, [sp]
0x6e2a7e58: add r9, r4, r2
0x6e2a7e5c: mov r4, r2
0x6e2a7e60: add r5, r12, r6, lsr #2
0x6e2a7e64: add r7, r4, #8
0x6e2a7e68: add r5, r0, r5
0x6e2a7e6c: vld1.8 {d0}, [r4], r3
0x6e2a7e70: vld1.8 {d1}, [r7], r3
0x6e2a7e74: vld1.8 {d2}, [r4], r3
0x6e2a7e78: vld1.8 {d3}, [r7], r3
0x6e2a7e7c: vld1.8 {d4}, [r4], r3
0x6e2a7e80: vld1.8 {d5}, [r7], r3
0x6e2a7e84: vld1.8 {d6}, [r4]
0x6e2a7e88: vld1.8 {d7}, [r7]
=> 0x6e2a7e8c: vstmia r5, {d0-d7}
0x6e2a7e90: add r4, r4, #16
0x6e2a7e94: add r6, r6, #256 ; 0x100
0x6e2a7e98: cmp r9, r4
0x6e2a7e9c: bne 0x6e2a7e60
0x6e2a7ea0: add r10, r10, #4
0x6e2a7ea4: add r2, r2, r11
0x6e2a7ea8: cmp r10, lr
0x6e2a7eac: add r12, r12, r1
0x6e2a7eb0: bcc 0x6e2a7e48
End of assembler dump.
(gdb) p/x $r5
$1 = 0x7050c000
Same problem with rpi 3 here, could be related to this.
Can you update to 18.3.3 and check again ? Did fix it for me.
I don't have spare time to play with my raspberry pi this week. I'll try to update mesa next week and write the results here. Looks like my issue is the one described in the article from the link.
I've tried to update mesa and run gnom-shell --wayland
. Mesa 18.3.3 works fine.