On Mon, 2015-04-13 at 14:21 +0200, David Henningsson wrote: > > On 2015-04-13 11:20, Arun Raghavan wrote: > > On 13 April 2015 at 13:44, David Henningsson > > <david.henningsson at canonical.com> wrote: > >> > >> > >> On 2015-04-13 04:34, Luke Yelavich wrote: > >>> > >>> Hi folks. > >>> I've been alerted to a couple of crashers, one with a stack retrace, and > >>> another with no retrace: > >>> > >>> https://errors.ubuntu.com/problem/303c6c40a7facabe59bfce5bc9e6dd0d72cf5fff > >> > >> > >> For people who can't access this URL, I've uploaded the stack trace here > >> [1]. > >> > >>> https://launchpad.net/bugs/1425447 > >> > >> > >> This one is far more common than the previous one and should be fixed ASAP. > >> That said, it's likely a follow up error to something else, but we seem to > >> be dealing with that error in a bad way. > >> > >>> If any of these are already fixed post 6.0, which patches do I need to > >>> pull? If not, I'll file them in the bug tracker. > >> > >> > >> I'm not familiar with fixes to any of these two bugs. > > > > Would be useful to have debug logs from the server. > > PulseAudio verbose logs would be helpful, yes. We don't enable them by > default so there's usually nothing "from the server" unless someone does > one and uploads it to launchpad. > > That said, I wonder what would happen if we did this: > > diff --git a/src/daemon/main.c b/src/daemon/main.c > index deb1e43..039957f 100644 > --- a/src/daemon/main.c > +++ b/src/daemon/main.c > @@ -1157,6 +1157,7 @@ finish: > if (c) { > /* Ensure all the modules/samples are unloaded when the core > is still ref'ed, > * as unlink callback hooks in modules may need the core to be > ref'ed */ > + c->disallow_module_loading = true; > pa_module_unload_all(c); > pa_scache_free_all(c); That seems a sensible thing to do, or alternatively check whether the daemon is shutting down in pa_module_unload(). I already had this item in my todo list, line 727: "pa_module_load() should fail if the daemon is shutting down. That will make it unnecessary to call pa_idxset_remove_all() in pa_module_unload_all() after having already done one round of unloading." -- Tanu