[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 20/26] qapi: Make output visitor return qnull
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] [PATCH v7 20/26] qapi: Make output visitor return qnull() instead of NULL |
Date: |
Tue, 15 Sep 2015 12:37:22 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Sep 14, 2015 at 07:57:51PM +0200, Markus Armbruster wrote:
> Before commit 1d10b44, it crashed. Since then, it returns NULL, with
> a FIXME comment. The FIXME is valid: code that assumes QObject *
> can't be null exists. I'm not aware of a way to feed this problematic
> return value to code that actually chokes on null in the current code,
> but the next few commits will create one, failing "make check".
>
> Commit 481b002 solved a very similar problem by introducing a special
> null QObject. Using this special null QObject is clearly the right
> way to resolve this FIXME, so do that, and update the test
> accordingly.
>
> However, the patch isn't quite right: it messes up the reference
> counting. After about SIZE_MAX visits, the reference counter
> overflows, failing the assertion in qnull_destroy_obj(). Because
> that's many orders of magnitude more visits of nulls than we expect,
> we take this patch despite its flaws, to get the QMP introspection
> stuff in without further delay.
>
> Naturally, we'll have to fix it for real before the release.
Do we actually ever get near to SIZE_MAX visits ? If not, then
it would not seem critical to fix before release, as this is
just the generator code
>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
> qapi/qmp-output-visitor.c | 8 ++++++--
> tests/test-qmp-output-visitor.c | 3 ++-
> 2 files changed, 8 insertions(+), 3 deletions(-)
Reviewed-by: Daniel P. Berrange <address@hidden>
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
- [Qemu-devel] [PATCH v7 09/26] qapi: De-duplicate enum code generation, (continued)
- [Qemu-devel] [PATCH v7 09/26] qapi: De-duplicate enum code generation, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 08/26] qapi-commands: Convert to QAPISchemaVisitor, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 12/26] qapi: Replace dirty is_c_ptr() by method c_null(), Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 11/26] qapi-event: Convert to QAPISchemaVisitor, fixing data with base, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 19/26] qapi: Improve built-in type documentation, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 20/26] qapi: Make output visitor return qnull() instead of NULL, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 23/26] qapi-schema: Fix up misleading specification of netdev_add, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 17/26] qapi: De-duplicate parameter list generation, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 05/26] tests/qapi-schema: Convert test harness to QAPISchemaVisitor, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 10/26] qapi-event: Eliminate global variable event_enum_value, Markus Armbruster, 2015/09/14
- [Qemu-devel] [PATCH v7 22/26] qom: Don't use 'gen': false for qom-get, qom-set, object-add, Markus Armbruster, 2015/09/14