qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 0/2] qom: detect attempts to add a property that


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH 0/2] qom: detect attempts to add a property that already exists
Date: Mon, 22 Oct 2012 13:35:20 -0200

On Fri, 19 Oct 2012 18:19:04 +0100
Peter Maydell <address@hidden> wrote:

> The aim of this patch series is to make QEMU exit with a helpful
> error message for bugs where multiple properties of the same name
> are accidentally added to a QOM object. 

Does this happen only at build-time or can it happen at command-line
too? What about QMP/HMP?

> In order to achieve this
> for static properties whilst still allowing the hotplug case
> to gracefully fail without killing QEMU, we add the concept
> of a 'critical' error. A critical error is one which must be
> handled somehow -- if we encounter a NULL Error** either when
> the error is raised or later when it is propagated, we will
> abort() rather than throwing the error away.

This gives me the impression that we're fixing it in the wrong layer.
Besides, all code calling error_propagate() today can now abort
(at least in theory), but that's something we really don't want to happen
in QMP.

An alternative would be to let users set is_critical, but add a
error_is_critical() function and let the code that wants to abort
to check for it.

But, how difficult it's to add a flag to QPM objects to allow/disallow
multiple properties?

> 
> (This is a bit different from the idea we initially discussed on
> IRC, which was to have an error_propagate_or_abort() function,
> but that approach would mean that the error would get thrown
> away by intermediate functions such as qdev_property_add_static()
> unless all those functions were changed too. I think this way
> is more reliable.)
> 
> Peter Maydell (2):
>   error: Distinguish critical and non-critical errors
>   qom: Detect attempts to add a property that already exists
> 
>  error.c      |   38 ++++++++++++++++++++++++++++++++++----
>  error.h      |   12 ++++++++++++
>  qom/object.c |   13 ++++++++++++-
>  3 files changed, 58 insertions(+), 5 deletions(-)
> 




reply via email to

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