[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-7.0 v3] qemu/main-loop: Disable block backend global stat
From: |
Peter Maydell |
Subject: |
Re: [PATCH-for-7.0 v3] qemu/main-loop: Disable block backend global state assertion on Cocoa |
Date: |
Sat, 26 Mar 2022 12:45:40 +0000 |
On Fri, 25 Mar 2022 at 18:37, Philippe Mathieu-Daudé
<philippe.mathieu.daude@gmail.com> wrote:
>
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
> Since commit 0439c5a462 ("block/block-backend.c: assertions for
> block-backend") QEMU crashes when using Cocoa on Darwin hosts.
>
> Example 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
>
> As we are in passed release 7.0 hard freeze, disable the block
> backend assertion which, while being valuable during development,
> is not helpful to users. We'll restore this assertion immediately
> once 7.0 is released and work on a fix.
>
> Cc: Kevin Wolf <kwolf@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Emanuele Giuseppe Esposito <eesposit@redhat.com>
> Suggested-by: Akihiko Odaki <akihiko.odaki@gmail.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM