Warsow 2.0 crashes in nouveau_fence_trigger_work
@mslusarz
Submitted by Marcin Ślusarz Assigned to Nouveau Project
Description
Warsow can be downloaded from: https://www.warsow.gg/download
gdb session:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe704a700 (LWP 12680)]
nouveau_fence_trigger_work (fence=fence@entry=0x7fffd0296850) at nouveau_fence.c:57
57 LIST_DEL(&work->list);
(gdb) bt
#0 nouveau_fence_trigger_work (fence=fence@entry=0x7fffd0296850) at nouveau_fence.c:57
#1 0x00007fffef9459be in nouveau_fence_update (screen=screen@entry=0xac1060, flushed=flushed@entry=false) at nouveau_fence.c:132
#2 0x00007fffef945c6e in nouveau_fence_wait (fence=0x7fffd0296850, debug=0x0) at nouveau_fence.c:223
#3 0x00007fffef68b0cb in st_finish (st=st@entry=0x17d6130) at state_tracker/st_cb_flush.c:101
#4 0x00007fffef68b110 in st_glFinish (ctx=<optimized out>) at state_tracker/st_cb_flush.c:136
#5 0x00007fffd72ef731 in ?? () from ./libs/libref_gl_x86_64.so
#6 0x0000000000405af6 in ?? ()
#7 0x0000000000405bc9 in ?? ()
#8 0x00007fffd72eb304 in ?? () from ./libs/libref_gl_x86_64.so
#9 0x00007ffff78bc6aa in start_thread (arg=0x7fffe704a700) at pthread_create.c:333
#10 0x00007ffff70e1eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb) print work
$1 = (struct nouveau_fence_work *) 0x7fffd815fc50
(gdb) print work->list
$2 = {prev = 0x0, next = 0x7fffd8121510}
(gdb) list
52 {
53 struct nouveau_fence_work *work, *tmp;
54
55 LIST_FOR_EACH_ENTRY_SAFE(work, tmp, &fence->work, list) {
56 work->func(work->data);
57 LIST_DEL(&work->list);
58 FREE(work);
59 }
60 }
61
(gdb) i threads
Id Target Id Frame
7 Thread 0x7fffe6048700 (LWP 12675) "warsow.x86_64" 0x00007ffff70d8743 in select () at ../sysdeps/unix/syscall-template.S:81
6 Thread 0x7fffe6849700 (LWP 12679) "warsow.x86_64" 0x00007ffff70d80b7 in ioctl () at ../sysdeps/unix/syscall-template.S:81
5 Thread 0x7fffd72a2700 (LWP 12683) "SDLAudioDev1" 0x00007ffff70d69a1 in __GI_ppoll (fds=0x7fffe003b060, nfds=2, timeout=<optimized out>, sigmask=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:56
* 4 Thread 0x7fffe704a700 (LWP 12680) "warsow.x86_64" nouveau_fence_trigger_work (fence=fence@entry=0x7fffd0296850) at nouveau_fence.c:57
2 Thread 0x7fffe784b700 (LWP 12681) "warsow.x86_64" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
1 Thread 0x7ffff7fb9780 (LWP 12632) "warsow.x86_64" (Exiting) 0x00007fffd72e62b8 in ?? () from ./libs/libref_gl_x86_64.so
(gdb) print work
work work_count worklist_elem
(gdb) print work->func
$3 = (void (*)(void *)) 0x7fffef945d20 <nouveau_fence_unref_bo>
(gdb)
This is with Mesa-git from ~2 weeks ago: OpenGL renderer string: Gallium 0.4 on NVE7 OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.1.0-devel (git-1a18457a)
Version: git