[pulseaudio-discuss] Issue in libpulse crash for calc_next_timeout
Arun Raghavan
arun at arunraghavan.net
Mon Jul 25 04:25:09 UTC 2016
On Sat, 23 Jul 2016, at 06:08 PM, Dhananjay Joshi wrote:
> Hi
> we are getting the below assertion failed in libpulse ultimately causes
> crash.
>
> static pa_usec_t calc_next_timeout(pa_mainloop *m) {
> pa_time_event *t;
> pa_usec_t clock_now;
>
> if (m->n_enabled_time_events <= 0)
> return PA_USEC_INVALID;
>
> * pa_assert_se(t = find_next_time_event(m));* //// assertion failed
> here
> and causes the crash
>
> if (t->time <= 0)
> return 0;
>
> clock_now = pa_rtclock_now();
>
> if (t->time <= clock_now)
> return 0;
>
> return t->time - clock_now;
> }
>
>
> this crash happened due to the following API call.
>
> pa_context_suspend_sink_by_name(context,sink_name,suspend/resume,NULL.NULL);
>
> above function causes a crash in libpulse code.
>
> #0 __GI_raise (sig=sig at entry=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:57
> #1 0xb6bd5690 in __GI_abort () at abort.c:89
> #2 0xb525dbe0 in calc_next_timeout (m=<optimized out>) at
> /usr/src/debug/pulseaudio/6.0-r0/pulseaudio-6.0/src/pulse/mainloop.c:719
> #3 pa_mainloop_prepare (m=0x0, m at entry=0xb37d8,
> timeout=timeout at entry=-1)
> at
> /usr/src/debug/pulseaudio/6.0-r0/pulseaudio-6.0/src/pulse/mainloop.c:800
> #4 0xb525e4dc in pa_mainloop_iterate (m=m at entry=0xb37d8,
> block=block at entry=1,
> retval=retval at entry=0x0) at
> /usr/src/debug/pulseaudio/6.0-r0/pulseaudio-6.0/src/pulse/mainloop.c:923
> #5 0xb525e5bc in pa_mainloop_run (m=0xb37d8, retval=retval at entry=0x0) at
> /usr/src/debug/pulseaudio/6.0-r0/pulseaudio-6.0/src/pulse/mainloop.c:944
> #6 0xb526e1a0 in thread (userdata=0xb2820) at
> /usr/src/debug/pulseaudio/6.0-r0/pulseaudio-6.0/src/pulse/thread-mainloop.c:88
> #7 0xb51fc11c in internal_thread_func (userdata=0xb62c0) at
> /usr/src/debug/pulseaudio/6.0-r0/pulseaudio-6.0/src/pulsecore/thread-posix.c:81
> #8 0xb6df4040 in start_thread (arg=0xb00fe420) at pthread_create.c:314
>
> Note: This issue occurs randomly. with pulseaudio-6.0
>
> Request to help in resolution of this issue:
Could you try with 9.0? If it still happens, it would be nice to have a
testcase that maybe does what you're doing in a loop until it breaks.
Cheers,
Arun
More information about the pulseaudio-discuss
mailing list