John Snow <js...@redhat.com> writes:

> On Fri, Jul 11, 2025, 10:47 AM Markus Armbruster <arm...@redhat.com> wrote:

[...]

>> Exception ignored in: <function QEMUMonitorProtocol.__del__ at
>> 0x7fcfcd080d60>
>> Traceback (most recent call last):
>>   File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/legacy.py",
>> line 310, in __del__
>>     self.close()
>>   File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/legacy.py",
>> line 281, in close
>>     self._sync(
>>   File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/legacy.py",
>> line 102, in _sync
>>     return self._aloop.run_until_complete(
>>   File "/usr/lib64/python3.13/asyncio/base_events.py", line 719, in
>> run_until_complete
>>     return future.result()
>>   File "/usr/lib64/python3.13/asyncio/tasks.py", line 507, in wait_for
>>     return await fut
>>   File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/protocol.py",
>> line 399, in disconnect
>>     await self._wait_disconnect()
>>   File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/protocol.py",
>> line 719, in _wait_disconnect
>>     await all_defined_tasks  # Raise Exceptions from the bottom half.
>>   File "/work/armbru/qemu/scripts/qmp/../../python/qemu/qmp/protocol.py",
>> line 870, in _bh_loop_forever
>>     await async_fn()
>> RuntimeError: cannot reuse already awaited coroutine
>>
>
> Curious about this backtrace. It looks like something has gone
> fundamentally wrong in the internals and the error is being raised by the
> garbage collector which is not ideal.
>
> Can you help me reproduce this? Even if it's old/bad code, I don't want
> python-qemu-qmp faulting like this.

Reproducer for Fedora 41, current master c079d3a31e4:

Run

    $ qemu-system-x86_64 -S -display none -chardev 
socket,id=mon1,path=test-qmp,server=on,wait=off -mon 
mode=control,id=qmp,chardev=mon1

and

    $ scripts/qmp/qom-tree -s test-qmp >/dev/null

Questions?


Reply via email to