On Mon, 2012-09-24 at 14:40 +0200, Matthijs Kooijman wrote: > Previously, sink_input_kill_cb would cleanup u->sink an then unload the > module. However, during module unload, both save_state and dbus_done > tried to use u->sink, causing a segfault or assertion failure. > > The segfault is easy to reproduce: Load module-equalizer-sink and then > press ctrl-C to terminate pulseaudio. > > This commit removes the u->sink cleanup in sink_input_kill_cb, since > u->sink will be cleaned up by the module's pa__done as well (after it > has been used). Thanks! I applied the patch now. I wonder if the other filter sinks should be changed too, and if also u->sink_input unreffing should be left to pa__done(). It shouldn't hurt to delay the unreffing until the module unload, and it would prevent/fix other bugs that are caused by depending on some information stored in pa_sink or pa_sink_input in the module unloading code. -- Tanu