Here is a slightly better one than the gist I posted last night. Note the "update_max_rewind_cb not called!" line. Seems that if a sink is unlinked, sink.c sets its max_rewind but; because there is no sink input, it does not call the callback. Is it possible to have an update_max_rewind callback for the sink as well as the sink_input? That would seem to make things more consistent and prevent different threads from messing with a sink member value. N: [lt-pulseaudio] daemon-conf.c: Detected that we are run from the build tree, fixing search path. E: [lt-pulseaudio] main.c: Failed to kill daemon: No such file or directory E: [pulseaudio] main.c: Failed to kill daemon: No such process N: [lt-pulseaudio] daemon-conf.c: Detected that we are run from the build tree, fixing search path. W: [lt-pulseaudio] pid.c: Stale PID file, overwriting. W: [lt-pulseaudio] authkey.c: Failed to open cookie file '/home/justin/.config/p ulse/cookie': No such file or directory W: [lt-pulseaudio] authkey.c: Failed to load authorization key '/home/justin/.co nfig/pulse/cookie': No such file or directory JZ: pulsecore/sink.c[338][pa_sink_new] sink = null s->thread_info.max_rewind = 0 JZ: pulsecore/sink.c[405][pa_sink_new] sink = null s->thread_info.max_rewind = 0 JZ: pulsecore/sink.c[3075][pa_sink_set_max_rewind] sink = null s->thread_info.max_rewind = 0 s->new max_rewind = 1058400 JZ: pulsecore/sink.c[3044][pa_sink_set_max_rewind_within_thread] sink = null s->thread_info.max_rewind = 0 s->new max_rewind = 1058400 JZ: [pulsecore/sink.c[3058][pa_sink_set_max_rewind_within_thread] pa_sink_input_ update_max_rewind not called! s->thread_info.state = -2JZ: pulsecore/sink.c[338][pa_sink_new] sink = null.lfe_lp s->thread_info.max_rewind = 0 JZ: pulsecore/sink.c[405][pa_sink_new] sink = null.lfe_lp s->thread_info.max_rewind = 0 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = sink input render_memblockq [0] nbytes = 0 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = module-lfe-lp memblockq nbytes = 0 JZ: pulsecore/sink.c[3044][pa_sink_set_max_rewind_within_thread] sink = null.lfe_lp s->thread_info.max_rewind = 24576 s->new max_rewind = 2116800 JZ: [pulsecore/sink.c[3053][pa_sink_set_max_rewind_within_thread] pa_sink_input_ update_max_rewind was called. s->thread_info.state = 1JZ: pulsecore/sink.c[2957] pa_sink_request_rewind sink = null s->thread_info.max_rewind = 1058400 s->req rewind bytes = 1058400 JZ: pulsecore/sink.c[2462] pa_sink_process_msg sink = null s->thread_info.max_rewind = 1058400 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = sink input render_memblockq [0] nbytes = 1058400 JZ: pulsecore/sink-input.c[1129] pa_sink_input_update_max_rewind nbytes=1058400 JZ: sink_input_update_max_rewind_cb[698] called without changing size. max_rewind = 529200 samples JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = module-lfe-lp memblockq nbytes = 2116800 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = source output delay_memblockq nbytes = 0 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = native protocol record stream memblockq [0] nbytes = 0 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = client side record memblockq nbytes = 0 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = sink input render_memblockq [1] nbytes = 0 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = native protocol playback stream memblockq [1] nbytes = 0 JZ: pulsecore/sink.c[3044][pa_sink_set_max_rewind_within_thread] sink = null s->thread_info.max_rewind = 1058400 s->new max_rewind = 1037232 JZ: pulsecore/memblockq.c[925][pa_memblockq_set_maxrewind] bq = sink input render_memblockq [0] nbytes = 1037232 JZ: pulsecore/sink-input.c[1129] pa_sink_input_update_max_rewind nbytes=1037232 JZ: modules/module-lfe-lp.c[766] all in samples cur max_rewind = 529200 req max_rewind = 518616 shrinkage = 10584 idx = 4032 length = 6144 JZ: modules/module-lfe-lp.c[771] Connection failure: Connection terminated Connection failure: Connection terminated Stream error: Connection terminated Stream error: Connection terminated Segmentation fault (core dumped)