|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PULL 21/50] block/block-backend.c: assertions for block-backend |
Date: | Wed, 16 Mar 2022 16:25:39 +0100 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 |
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 <eesposit@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 + 520I 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? 20220307151004.578069-1-pbonzini@redhat.com/">https://lore.kernel.org/qemu-devel/20220307151004.578069-1-pbonzini@redhat.com/
EmanueleBisected to this patch: 0439c5a4623d674efa0c72abd62ca6e98bb7cf87 is the first bad commitSigned-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Message-Id: <20220303151616.325444-9-eesposit@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/block-backend.c | 78 ++++++++++++++++++++++++++++++++++++++++++ softmmu/qdev-monitor.c | 2 ++ 2 files changed, 80 insertions(+)
[Prev in Thread] | Current Thread | [Next in Thread] |