qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 21/50] block/block-backend.c: assertions for block-backend


From: Emanuele Giuseppe Esposito
Subject: Re: [PULL 21/50] block/block-backend.c: assertions for block-backend
Date: Wed, 16 Mar 2022 15:46:55 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0


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 + 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.

Emanuele
> 
>> Bisected to this patch:
>>
>> 0439c5a4623d674efa0c72abd62ca6e98bb7cf87 is the first bad commit
>>
>>> Signed-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(+)
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]