On 16/3/22 15:46, Emanuele Giuseppe Esposito wrote:
Am 16/03/2022 um 13:53 schrieb Philippe Mathieu-Daudé:
On 16/3/22 13:44, Philippe Mathieu-Daudé wrote:
Hi,

On 4/3/22 17:46, Kevin Wolf wrote:
From: Emanuele Giuseppe Esposito <eespo...@redhat.com>

All the global state (GS) API functions will check that
qemu_in_main_thread() returns true. If not, it means
that the safety of BQL cannot be guaranteed, and
they need to be moved to I/O.

I'm getting this crash:

$ qemu-system-i386
Assertion failed: (qemu_in_main_thread()), function blk_all_next, file
block-backend.c, line 552.
Abort trap: 6

Assertion failed: (qemu_in_main_thread()), function blk_all_next, file
block-backend.c, line 552.
qemu-system-i386 was compiled with optimization - stepping may behave
oddly; variables may not be available.
Process 76914 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = hit
program assert
      frame #4: 0x000000010057c2d4 qemu-system-i386`blk_all_next.cold.1
at block-backend.c:552:5 [opt]
     549    */
     550   BlockBackend *blk_all_next(BlockBackend *blk)
     551   {
-> 552       GLOBAL_STATE_CODE();
     553       return blk ? QTAILQ_NEXT(blk, link)
     554                  : QTAILQ_FIRST(&block_backends);
     555   }
Target 1: (qemu-system-i386) stopped.

Forgot to paste the backtrace:

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = hit program
assert
     frame #0: 0x00000001908c99b8 libsystem_kernel.dylib`__pthread_kill + 8
     frame #1: 0x00000001908fceb0 libsystem_pthread.dylib`pthread_kill + 288
     frame #2: 0x000000019083a314 libsystem_c.dylib`abort + 164
     frame #3: 0x000000019083972c libsystem_c.dylib`__assert_rtn + 300
   * frame #4: 0x000000010057c2d4 qemu-system-i386`blk_all_next.cold.1 at
block-backend.c:552:5 [opt]
     frame #5: 0x00000001003c00b4
qemu-system-i386`blk_all_next(blk=<unavailable>) at
block-backend.c:552:5 [opt]
     frame #6: 0x00000001003d8f04
qemu-system-i386`qmp_query_block(errp=0x0000000000000000) at
qapi.c:591:16 [opt]
     frame #7: 0x000000010003ab0c qemu-system-i386`main [inlined]
addRemovableDevicesMenuItems at cocoa.m:1756:21 [opt]
     frame #8: 0x000000010003ab04
qemu-system-i386`main(argc=<unavailable>, argv=<unavailable>) at
cocoa.m:1980:5 [opt]
     frame #9: 0x00000001012690f4 dyld`start + 520

I think Paolo and Peter talked about this a couple of days ago on #qemu,
and have already found a solution if I remember correctly.

Maybe it's worth to check with them first.

Maybe this discussion?

https://lore.kernel.org/qemu-devel/20220307151004.578069-1-pbonz...@redhat.com/


Emanuele

Bisected to this patch:

0439c5a4623d674efa0c72abd62ca6e98bb7cf87 is the first bad commit

Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com>
Message-Id: <20220303151616.325444-9-eespo...@redhat.com>
Signed-off-by: Kevin Wolf <kw...@redhat.com>
---
   block/block-backend.c  | 78 ++++++++++++++++++++++++++++++++++++++++++
   softmmu/qdev-monitor.c |  2 ++
   2 files changed, 80 insertions(+)




Reply via email to