Skip to content

block-backend assertion with Cocoa UI

As of v7.0.0-rc0 when using cocoa on macOS:

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

Looking with lldb:

Assertion failed: (qemu_in_main_thread()), function blk_all_next, file block-backend.c, line 552.
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.

(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

Bisected to commit 0439c5a4 ("block/block-backend.c: assertions for block-backend").

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information