On 2012-05-09 16:33, malc wrote: > On Wed, 9 May 2012, Jan Kiszka wrote: > >> On 2012-05-03 20:51, malc wrote: >>> On Thu, 3 May 2012, Jan Kiszka wrote: >>> >>>> On 2012-05-03 16:32, malc wrote: >>>>> On Thu, 3 May 2012, Jan Kiszka wrote: >>>>> >>>>>> Not only clean up enabled voices but any registered one. Backends like >>>>>> pulsaudio rely on unconditional fini handler invocations. >>>>>> >>>>>> This fixes "Memory pool destroyed but not all memory blocks freed!" >>>>>> warnings on VM shutdowns when pa is used. >>>>> >>>>> Perhaps it's better to actually handle VOICE_DISABLE in pa's ctl_[in|out]? >>>> >>>> This might be some additional issue (that pa is not supporting >>>> enable/disable). In any case, it is unrelated to this one: fini >>>> corresponds to init. And as we initialized the voice, we also have to >>>> finalize it on shutdown. That's what this patch is fixing. >>>> >>> >>> The issue is that i don't remember exactly why it iterates only over >>> enabled voices, maybe there was a reason, maybe there wasn't, need to >>> think it over. >> >> Any news on this? >> > > Nope.
Can we please get this or similar fix in 1.1.? It not only cures the annoying warning, I just noticed that, without it, the qemu process hangs like this on exit when audio was in use by the guest: (gdb) bt #0 0x00007f4c2f01b5f0 in sem_wait () from /lib64/libpthread.so.0 #1 0x00007f4c2a695f58 in pa_semaphore_wait () from /usr/lib64/libpulsecommon-0.9.22.so #2 0x00007f4c2a67d0a4 in ?? () from /usr/lib64/libpulsecommon-0.9.22.so #3 0x00007f4c2a67d1ab in ?? () from /usr/lib64/libpulsecommon-0.9.22.so #4 0x00007f4c2a67fa50 in pa_memimport_free () from /usr/lib64/libpulsecommon-0.9.22.so #5 0x00007f4c2a688930 in pa_pstream_unlink () from /usr/lib64/libpulsecommon-0.9.22.so #6 0x00007f4c2de1a3ea in ?? () from /usr/lib64/libpulse.so.0 #7 0x00007f4c2de1ad58 in ?? () from /usr/lib64/libpulse.so.0 #8 0x00007f4c30be1aa4 in qpa_audio_fini (opaque=0x7f4c311a98e0) at /data/qemu-kvm/audio/paaudio.c:875 #9 0x00007f4c2b9fc5a1 in __run_exit_handlers () from /lib64/libc.so.6 #10 0x00007f4c2b9fc5f5 in exit () from /lib64/libc.so.6 #11 0x00007f4c2b9e5c04 in __libc_start_main () from /lib64/libc.so.6 #12 0x00007f4c30bd5219 in _start () at ../sysdeps/x86_64/elf/start.S:103 Thanks, Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux