Kevin Wolf <kw...@redhat.com> writes:
> We can only destroy Monitor objects after we're sure that they are not > in use by the dispatcher coroutine any more. This fixes crashes like the > following where we tried to destroy a monitor mutex while the dispatcher > coroutine still holds it: > > (gdb) bt > #0 0x00007fe541cf4bc5 in raise () at /lib64/libc.so.6 > #1 0x00007fe541cdd8a4 in abort () at /lib64/libc.so.6 > #2 0x000055c24e965327 in error_exit (err=16, msg=0x55c24eead3a0 > <__func__.33> "qemu_mutex_destroy") at ../util/qemu-thread-posix.c:37 > #3 0x000055c24e9654c3 in qemu_mutex_destroy (mutex=0x55c25133e0f0) at > ../util/qemu-thread-posix.c:70 > #4 0x000055c24e7cfaf1 in monitor_data_destroy_qmp (mon=0x55c25133dfd0) at > ../monitor/qmp.c:439 > #5 0x000055c24e7d23bc in monitor_data_destroy (mon=0x55c25133dfd0) at > ../monitor/monitor.c:615 > #6 0x000055c24e7d253a in monitor_cleanup () at ../monitor/monitor.c:644 > #7 0x000055c24e6cb002 in qemu_cleanup () at ../softmmu/vl.c:4549 > #8 0x000055c24e0d259b in main (argc=24, argv=0x7ffff66b0d58, > envp=0x7ffff66b0e20) at ../softmmu/main.c:51 > > Reported-by: Alex Bennée <alex.ben...@linaro.org> > Signed-off-by: Kevin Wolf <kw...@redhat.com> LGTM: Tested-by: Alex Bennée <alex.ben...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> Who's tree is going to take it? -- Alex Bennée