Bug#593422: openarena: Segfaults unless pulseaudio is installed and running.
Simon McVittie
smcv at debian.org
Thu Aug 19 22:35:47 UTC 2010
Here's a traceback (this is ioquake3 running Quake III Arena, not openarena,
but it's basically the same), with debug symbols for as much as I could get,
and ioquake3 and SDL rebuilt with debug. I've added a bit of commentary but
not deleted anything from the traceback.
This is with s_alDevice "ALSA Software".
> ------ Initializing Sound ------
> [New Thread 0x7fffe359e710 (LWP 1504)]
> [Thread 0x7fffe359e710 (LWP 1504) exited]
> [New Thread 0x7fffe359e710 (LWP 1505)]
> [Thread 0x7fffe359e710 (LWP 1505) exited]
> [New Thread 0x7fffe359e710 (LWP 1506)]
> [Thread 0x7fffe359e710 (LWP 1506) exited]
> [New Thread 0x7fffe359e710 (LWP 1507)]
> [Thread 0x7fffe359e710 (LWP 1507) exited]
> [New Thread 0x7fffe359e710 (LWP 1508)]
> [New Thread 0x7fffe2d9d710 (LWP 1509)]
> Allocated 96 sources.
> [New Thread 0x7fffde376710 (LWP 1510)]
> [Thread 0x7fffde376710 (LWP 1510) exited]
> [New Thread 0x7fffde376710 (LWP 1511)]
> [Thread 0x7fffde376710 (LWP 1511) exited]
> [New Thread 0x7fffde376710 (LWP 1512)]
> [Thread 0x7fffde376710 (LWP 1512) exited]
> [New Thread 0x7fffde376710 (LWP 1513)]
> [Thread 0x7fffde376710 (LWP 1513) exited]
> OpenAL default capture device is 'PulseAudio Capture'
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7fffe359e710 (LWP 1508)]
> 0x00007fffe77369b0 in ?? ()
(Does this mean the SEGV was provoked by LWP 1508?)
Not sure what this next thread does... it might not have initialized its stack
properly yet?
> [New Thread 0x7fffde376710 (LWP 1514)]
>
> Thread 12 (Thread 0x7fffde376710 (LWP 1514)):
> #0 clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:84
> No locals.
> #1 0x00007ffff4c0c800 in ?? () at pthread_create.c:217
> from /lib/libpthread.so.0
> No symbol table info available.
> #2 0x00007fffde376710 in ?? ()
> No symbol table info available.
> #3 0x0000000000000000 in ?? ()
> No symbol table info available.
This looks like an ALSA output thread:
> Thread 7 (Thread 0x7fffe2d9d710 (LWP 1509)):
> #0 0x00007ffff5c2d103 in *__GI___poll (fds=<value optimized out>,
> nfds=<value optimized out>, timeout=-1)
> at ../sysdeps/unix/sysv/linux/poll.c:87
> _a3 = -1
> _a1 = 140736999312608
> resultvar = <value optimized out>
> _a2 = 1
> oldtype = 0
> result = <value optimized out>
> #1 0x00007fffe798f4da in ?? () from /usr/lib/libasound.so.2
> No symbol table info available.
> #2 0x00007fffe798f7bd in ?? () from /usr/lib/libasound.so.2
> No symbol table info available.
> #3 0x00007fffe79cd9ab in ?? () from /usr/lib/libasound.so.2
> No symbol table info available.
> #4 0x00007ffff745bc48 in ALSANoMMapProc (ptr=<value optimized out>)
> at /build/andres-openal-soft_1.12.854-2-amd64-LKOA6y/openal-soft-1.12.854/Alc/alsa.c:453
> ret = -516
> state = <value optimized out>
> pDevice = 0x7fffe7c1f010
> data = 0x23ba520
> avail = <value optimized out>
> WritePtr = 0x270f410 ""
> #5 0x00007ffff74599aa in StarterFunc (ptr=0x2713700)
> at /build/andres-openal-soft_1.12.854-2-amd64-LKOA6y/openal-soft-1.12.854/Alc/alcThread.c:95
> No locals.
> #6 0x00007ffff4c0c8ba in start_thread (arg=<value optimized out>)
> at pthread_create.c:300
> __res = <value optimized out>
> pd = 0x7fffe2d9d710
> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736999315216,
> 2632053607707369331, 140737299705632, 0, 140737354125376, 3,
> -2632024695615070349, -2632064475428102285},
> mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
> data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
> not_first_call = <value optimized out>
> freesize = <value optimized out>
> __PRETTY_FUNCTION__ = "start_thread"
> #7 0x00007ffff5c3801d in clone ()
> at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
> No locals.
> #8 0x0000000000000000 in ?? ()
> No symbol table info available.
This one looks like the interesting one: it's the PA thread:
> Thread 6 (Thread 0x7fffe359e710 (LWP 1508)):
> #0 0x00007fffe77369b0 in ?? ()
> No symbol table info available.
> #1 0x00007ffff574c9c7 in pa_command_request (pd=<value optimized out>,
> command=<value optimized out>, tag=<value optimized out>, t=0x270edf0,
> userdata=0x270a740) at pulse/stream.c:745
Here's the code:
744 if (s->requested_bytes > 0 && s->write_callback)
745 s->write_callback(s, (size_t) s->requested_bytes, s->write_userdata);
So it looks as though s->write_callback is somehow broken.
I've seen a similar crash for o->stream->latency_update_callback in
stream_get_timing_info_callback.
> s = 0x270e3c0
> bytes = 5344
> channel = 0
> __func__ = "pa_command_request"
> __PRETTY_FUNCTION__ = "pa_command_request"
> #2 0x00007ffff2ea05a6 in pa_pdispatch_run (pd=0x2712f00,
> packet=<value optimized out>, creds=<value optimized out>,
> userdata=0x270a740) at pulsecore/pdispatch.c:331
> tag = 4294967295
> command = 61
> ts = 0x270edf0
> ret = 0
> __func__ = "pa_pdispatch_run"
> __PRETTY_FUNCTION__ = "pa_pdispatch_run"
> #3 0x00007ffff5734d9d in pstream_packet_callback (p=<value optimized out>,
> packet=0x273f240, creds=0x2713200, userdata=0x270a740)
> at pulse/context.c:360
> __func__ = "pstream_packet_callback"
> __PRETTY_FUNCTION__ = "pstream_packet_callback"
> #4 0x00007ffff2ea4314 in do_read (p=0x27130b0) at pulsecore/pstream.c:816
> release_memblock = 0x0
> d = <value optimized out>
> l = 20
> r = 20
> #5 do_something (p=0x27130b0) at pulsecore/pstream.c:184
> __func__ = "do_something"
> __PRETTY_FUNCTION__ = "do_something"
> #6 0x00007ffff5741bdd in dispatch_pollfds (m=0x2709df0)
> at pulse/mainloop.c:688
> e = 0x271fb00
> k = 0
> r = 1
> #7 pa_mainloop_dispatch (m=0x2709df0) at pulse/mainloop.c:933
> dispatched = 0
> __func__ = "pa_mainloop_dispatch"
> __PRETTY_FUNCTION__ = "pa_mainloop_dispatch"
> #8 0x00007ffff5741f68 in pa_mainloop_iterate (m=0x2709df0,
> block=<value optimized out>, retval=0x0) at pulse/mainloop.c:964
> r = <value optimized out>
> __func__ = "pa_mainloop_iterate"
> __PRETTY_FUNCTION__ = "pa_mainloop_iterate"
> #9 0x00007ffff5742010 in pa_mainloop_run (m=0x2709df0, retval=0x0)
> at pulse/mainloop.c:979
> r = <value optimized out>
> #10 0x00007ffff57508eb in thread (userdata=0x2722380)
> at pulse/thread-mainloop.c:94
> mask = {__val = {18446744067267100671,
> 18446744073709551615 <repeats 15 times>}}
> #11 0x00007ffff2eb1700 in internal_thread_func (userdata=0x2724dc0)
> at pulsecore/thread-posix.c:72
> __func__ = "internal_thread_func"
> __PRETTY_FUNCTION__ = "internal_thread_func"
> #12 0x00007ffff4c0c8ba in start_thread (arg=<value optimized out>)
> at pthread_create.c:300
> __res = <value optimized out>
> pd = 0x7fffe359e710
> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737007707920,
> 2632053607707369331, 140737299705632, 0, 140737354125376, 3,
> -2632027993613082765, -2632064475428102285},
> mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
> data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
> not_first_call = <value optimized out>
> freesize = <value optimized out>
> __PRETTY_FUNCTION__ = "start_thread"
> #13 0x00007ffff5c3801d in clone ()
> at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
> No locals.
> #14 0x0000000000000000 in ?? ()
> No symbol table info available.
This is the main thread:
> Thread 1 (Thread 0x7ffff7fc2780 (LWP 1499)):
> #0 clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:84
> No locals.
> #1 0x00007ffff4c0cb24 in do_clone (pd=0x7fffde376710, attr=0x7ffff4c16f20,
> stackaddr=0x7fffde3769e0, stopped=1, fct=<value optimized out>,
> clone_flags=<value optimized out>)
> at ../nptl/sysdeps/pthread/createthread.c:75
> No locals.
> #2 0x00007ffff4c0d0d2 in create_thread (newthread=<value optimized out>,
> attr=<value optimized out>, start_routine=<value optimized out>,
> arg=<value optimized out>) at ../nptl/sysdeps/pthread/createthread.c:205
> stopped = <value optimized out>
> #3 __pthread_create_2_1 (newthread=<value optimized out>,
> attr=<value optimized out>, start_routine=<value optimized out>,
> arg=<value optimized out>) at pthread_create.c:561
> stackaddr = 0x7fffde3769e0
> iattr = 0x7ffff4c16f20
> pd = 0x7fffde376710
> err = -134229952
> #4 0x00007ffff2eb1825 in pa_thread_new (thread_func=0x7ffff57508b0 <thread>,
> userdata=0x2722410) at pulsecore/thread-posix.c:89
> t = <value optimized out>
> __func__ = "pa_thread_new"
> __PRETTY_FUNCTION__ = "pa_thread_new"
> #5 0x00007ffff5750805 in pa_threaded_mainloop_start (m=0x2722410)
> at pulse/thread-mainloop.c:148
> __func__ = "pa_threaded_mainloop_start"
> __PRETTY_FUNCTION__ = "pa_threaded_mainloop_start"
> #6 0x00007ffff7462ce3 in pulse_open (device=0x7fffe78a9010,
> device_name=0x7ffff7469b90 "PulseAudio Capture")
> at /build/andres-openal-soft_1.12.854-2-amd64-LKOA6y/openal-soft-1.12.854/Alc/pulseaudio.c:462
> data = 0x27412b0
> state = <value optimized out>
> #7 0x00007ffff7464ca7 in pulse_open_capture (device=0x7fffe78a9010,
> device_name=0x7ffff7469b90 "PulseAudio Capture")
> at /build/andres-openal-soft_1.12.854-2-amd64-LKOA6y/openal-soft-1.12.854/Alc/pulseaudio.c:775
> data = <value optimized out>
> state = <value optimized out>
> chanmap = {channels = 255 '\377', map = {PA_CHANNEL_POSITION_MONO,
> -169058648, 32767, -169058752, 32767, 590040,
> PA_CHANNEL_POSITION_MONO, -10928, 126,
> PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_MONO, 590080,
> PA_CHANNEL_POSITION_MONO, PA_CHANNEL_POSITION_MONO, 36878,
> 17971456, PA_CHANNEL_POSITION_MONO, PA_CHANNEL_POSITION_MONO,
> PA_CHANNEL_POSITION_MONO, 59424, PA_CHANNEL_POSITION_MONO,
> 41166816, PA_CHANNEL_POSITION_MONO, 590040,
> PA_CHANNEL_POSITION_MONO, -169058752, 32767, -169058752, 32767,
> -172101806, 32767, 1786}}
> #8 0x00007ffff7440207 in alcCaptureOpenDevice (deviceName=0x0,
> frequency=<value optimized out>, format=<value optimized out>,
> SampleSize=<value optimized out>)
> at /build/andres-openal-soft_1.12.854-2-amd64-LKOA6y/openal-soft-1.12.854/Alc/ALc.c:712
> device = 0x7fffe78a9010
> i = <value optimized out>
> #9 0x0000000000476a08 in S_AL_Init (si=0xbfe900)
> at code/client/snd_openal.c:2463
> device = <value optimized out>
> #10 0x000000000047388c in S_Init () at code/client/snd_main.c:504
> cv = 0x5ea
> started = <value optimized out>
> #11 0x0000000000428d7d in CL_StartHunkUsers (rendererOnly=qfalse)
> at code/client/cl_main.c:2852
> No locals.
> #12 0x000000000044bddd in Com_Init (commandLine=<value optimized out>)
> at code/qcommon/common.c:2797
> s = <value optimized out>
> qport = -922537196
> #13 0x0000000000539adb in main (argc=8, argv=0x7fffffffe030)
> at code/sys/sys_main.c:578
> i = 8
> commandLine = "\000set fs_basepath /usr/share/games/quake3 \000set s_alDevice \"ALSA Software\" ", '\000' <repeats 950 times>
> ver = <value optimized out>
More information about the Pkg-games-devel
mailing list