[PATCH for-7.0] main-loop: Disable GLOBAL_STATE_CODE() assertions

Hanna Reitz posted 1 patch 3 years, 10 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220329093545.52114-1-hreitz@redhat.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>
include/qemu/main-loop.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH for-7.0] main-loop: Disable GLOBAL_STATE_CODE() assertions
Posted by Hanna Reitz 3 years, 10 months ago
These assertions are very useful for developers to find bugs, and so
they have indeed pointed us towards bugs already.  For users, it is not
so useful to find these bugs.  We should probably not enable them in
releases until we are sufficiently certain that they will not fire
during normal operation, unless something is going seriously wrong.

For example, we have received a bug report that you cannot add an NBD
server on a BDS in an I/O thread with `-incoming defer`.  I am sure this
is a real bug that needs investigation, but we do not really have that
time right now, so close to release, and so I would rather disable the
assertions to get time to investigate such reports.

(I am just putting the link as "buglink" below, not "closes", because
disabling the assertion will not fix the likely underlying bug.)

Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
---
 include/qemu/main-loop.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 7a4d6a0920..3bf8aeb3cd 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -272,7 +272,8 @@ bool qemu_in_main_thread(void);
 /* Mark and check that the function is part of the global state API. */
 #define GLOBAL_STATE_CODE()                                         \
     do {                                                            \
-        assert(qemu_in_main_thread());                              \
+        /* FIXME: Re-enable after 7.0 release */                    \
+        /* assert(qemu_in_main_thread()); */                        \
     } while (0)
 
 /* Mark and check that the function is part of the I/O API. */
-- 
2.35.1
Re: [PATCH for-7.0] main-loop: Disable GLOBAL_STATE_CODE() assertions
Posted by Emanuele Giuseppe Esposito 3 years, 10 months ago

Am 29/03/2022 um 11:35 schrieb Hanna Reitz:
> These assertions are very useful for developers to find bugs, and so
> they have indeed pointed us towards bugs already.  For users, it is not
> so useful to find these bugs.  We should probably not enable them in
> releases until we are sufficiently certain that they will not fire
> during normal operation, unless something is going seriously wrong.
> 
> For example, we have received a bug report that you cannot add an NBD
> server on a BDS in an I/O thread with `-incoming defer`.  I am sure this
> is a real bug that needs investigation, but we do not really have that
> time right now, so close to release, and so I would rather disable the
> assertions to get time to investigate such reports.
> 
> (I am just putting the link as "buglink" below, not "closes", because
> disabling the assertion will not fix the likely underlying bug.)
> 
> Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
>  include/qemu/main-loop.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
> index 7a4d6a0920..3bf8aeb3cd 100644
> --- a/include/qemu/main-loop.h
> +++ b/include/qemu/main-loop.h
> @@ -272,7 +272,8 @@ bool qemu_in_main_thread(void);
>  /* Mark and check that the function is part of the global state API. */
>  #define GLOBAL_STATE_CODE()                                         \
>      do {                                                            \
> -        assert(qemu_in_main_thread());                              \
> +        /* FIXME: Re-enable after 7.0 release */                    \
> +        /* assert(qemu_in_main_thread()); */                        \
>      } while (0)
>  
>  /* Mark and check that the function is part of the I/O API. */
> 

Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Re: [PATCH for-7.0] main-loop: Disable GLOBAL_STATE_CODE() assertions
Posted by Stefan Hajnoczi 3 years, 10 months ago
On Tue, Mar 29, 2022 at 11:35:45AM +0200, Hanna Reitz wrote:
> These assertions are very useful for developers to find bugs, and so
> they have indeed pointed us towards bugs already.  For users, it is not
> so useful to find these bugs.  We should probably not enable them in
> releases until we are sufficiently certain that they will not fire
> during normal operation, unless something is going seriously wrong.
> 
> For example, we have received a bug report that you cannot add an NBD
> server on a BDS in an I/O thread with `-incoming defer`.  I am sure this
> is a real bug that needs investigation, but we do not really have that
> time right now, so close to release, and so I would rather disable the
> assertions to get time to investigate such reports.
> 
> (I am just putting the link as "buglink" below, not "closes", because
> disabling the assertion will not fix the likely underlying bug.)
> 
> Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
>  include/qemu/main-loop.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Sounds reasonable to me.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Re: [PATCH for-7.0] main-loop: Disable GLOBAL_STATE_CODE() assertions
Posted by Philippe Mathieu-Daudé 3 years, 10 months ago
On 29/3/22 11:35, Hanna Reitz wrote:
> These assertions are very useful for developers to find bugs, and so
> they have indeed pointed us towards bugs already.  For users, it is not
> so useful to find these bugs.  We should probably not enable them in
> releases until we are sufficiently certain that they will not fire
> during normal operation, unless something is going seriously wrong.
> 
> For example, we have received a bug report that you cannot add an NBD
> server on a BDS in an I/O thread with `-incoming defer`.  I am sure this
> is a real bug that needs investigation, but we do not really have that
> time right now, so close to release, and so I would rather disable the
> assertions to get time to investigate such reports.
> 
> (I am just putting the link as "buglink" below, not "closes", because
> disabling the assertion will not fix the likely underlying bug.)
> 
> Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945

Also helps:
https://gitlab.com/qemu-project/qemu/-/issues/926

> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
>   include/qemu/main-loop.h | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
> index 7a4d6a0920..3bf8aeb3cd 100644
> --- a/include/qemu/main-loop.h
> +++ b/include/qemu/main-loop.h
> @@ -272,7 +272,8 @@ bool qemu_in_main_thread(void);
>   /* Mark and check that the function is part of the global state API. */
>   #define GLOBAL_STATE_CODE()                                         \
>       do {                                                            \
> -        assert(qemu_in_main_thread());                              \
> +        /* FIXME: Re-enable after 7.0 release */                    \
> +        /* assert(qemu_in_main_thread()); */                        \
>       } while (0)
>   
>   /* Mark and check that the function is part of the I/O API. */

Do you want me to cancel/repost my PR without this patch?

https://lore.kernel.org/qemu-devel/20220328224012.32737-3-philippe.mathieu.daude@gmail.com/

Otherwise:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


Re: [PATCH for-7.0] main-loop: Disable GLOBAL_STATE_CODE() assertions
Posted by Hanna Reitz 3 years, 10 months ago
On 29.03.22 12:17, Philippe Mathieu-Daudé wrote:
> On 29/3/22 11:35, Hanna Reitz wrote:
>> These assertions are very useful for developers to find bugs, and so
>> they have indeed pointed us towards bugs already.  For users, it is not
>> so useful to find these bugs.  We should probably not enable them in
>> releases until we are sufficiently certain that they will not fire
>> during normal operation, unless something is going seriously wrong.
>>
>> For example, we have received a bug report that you cannot add an NBD
>> server on a BDS in an I/O thread with `-incoming defer`.  I am sure this
>> is a real bug that needs investigation, but we do not really have that
>> time right now, so close to release, and so I would rather disable the
>> assertions to get time to investigate such reports.
>>
>> (I am just putting the link as "buglink" below, not "closes", because
>> disabling the assertion will not fix the likely underlying bug.)
>>
>> Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945
>
> Also helps:
> https://gitlab.com/qemu-project/qemu/-/issues/926
>
>> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
>> ---
>>   include/qemu/main-loop.h | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
>> index 7a4d6a0920..3bf8aeb3cd 100644
>> --- a/include/qemu/main-loop.h
>> +++ b/include/qemu/main-loop.h
>> @@ -272,7 +272,8 @@ bool qemu_in_main_thread(void);
>>   /* Mark and check that the function is part of the global state 
>> API. */
>>   #define GLOBAL_STATE_CODE()                                         \
>>       do {                                                            \
>> - assert(qemu_in_main_thread());                              \
>> +        /* FIXME: Re-enable after 7.0 release */                    \
>> +        /* assert(qemu_in_main_thread()); */                        \
>>       } while (0)
>>     /* Mark and check that the function is part of the I/O API. */
>
> Do you want me to cancel/repost my PR without this patch?
>
> https://lore.kernel.org/qemu-devel/20220328224012.32737-3-philippe.mathieu.daude@gmail.com/

I think we should let Peter take your PR first, as long as the 
discussion on this is still out.  I’d like to give it a couple more 
hours, and as far as I understand, we definitely want yours.

(Taking mine will then cause me rebase conflicts and make it look weird, 
but that’s not too bad for something that’s just a temporary band-aid 
anyway.)

Hanna