Re: [RESEND PATCH V10 00/15] iothread: Support tracking and querying IOThread holders

Zhang Chen <[email protected]>
Newsgroups gmane.comp.emulators.qemu
Message-ID <CAK3tnv+40pv7-MQMhreivBwv+FrWpjpx9dSKSQ=6fKRxq3w=fA@mail.gmail.com>
On Tue, Jul 21, 2026 at 8:47 PM Markus Armbruster <[email protected]> wrote:
>
> With this series applied:
>
>     $ qemu-system-x86_64 -S -display none -chardev id=chr-mon0,backend=stdio -object monitor-hmp,id=mon0,chardev=chr-mon0 -chardev id=chr-mon1,backend=socket,path=test-hmp,server=on,wait=off -object monitor-qmp,id=mon1,chardev=chr-mon1
>     QEMU 11.0.90 monitor - type 'help' for more information
>     (qemu) q
>     **
>     ERROR:../iothread.c:99:iothread_unref: code should not be reached
>     Bail out! ERROR:../iothread.c:99:iothread_unref: code should not be reached
>     Aborted                    (core dumped) qemu-system-x86_64 -S -display none -chardev id=chr-mon0,backend=stdio -object monitor-hmp,id=mon0,chardev=chr-mon0 -chardev id=chr-mon1,backend=socket,path=test-hmp,server=on,wait=off -object monitor-qmp,id=mon1,chardev=chr-mon1
>
> Stack backtrace:
>
>     #0  0x00007f182873832c in __pthread_kill_implementation () at /lib64/libc.so.6
>     #1  0x00007f18286de15e in raise () at /lib64/libc.so.6
>     #2  0x00007f18286c56d0 in abort () at /lib64/libc.so.6
>     #3  0x00007f182ac53482 in g_assertion_message[cold] ()
>         at /lib64/libglib-2.0.so.0
>     #4  0x00007f182acc1447 in g_assertion_message_expr ()
>         at /lib64/libglib-2.0.so.0
>     #5  0x000055ffa06cb50e in iothread_unref
>         (iothread=0x55ffdb3bd740, holder=0x7ffc6152d8c0) at ../iothread.c:99
>     #6  0x000055ffa06cc13a in iothread_put_aio_context
>         (iothread=0x55ffdb3bd740, holder=0x7ffc6152d8c0) at ../iothread.c:444
>     #7  0x000055ffa07d9af6 in monitor_cleanup () at ../monitor/monitor.c:679
>     #8  0x000055ffa047ca8c in qemu_cleanup (status=0) at ../system/runstate.c:1046
>     #9  0x000055ffa07fccb7 in qemu_default_main (opaque=0x0) at ../system/main.c:51
>     #10 0x000055ffa07fcd64 in main (argc=12, argv=0x7ffc6152da98)
>         at ../system/main.c:93
>

Oh~ Thanks for the hmp and qmp monitor case test. I didn't trigger it
in the basic monitor test.
The root cause is monitor_cleanup unconditionally unregisters all monitors
if the global mon_iothread exists. I will fix it in next version.

Thanks
Chen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.