From: Eric Blake <eblake@redhat.com>
To: Markus Armbruster <armbru@redhat.com>,
"Daniel P. Berrange" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH v7 20/26] qapi: Make output visitor return qnull() instead of NULL
Date: Tue, 15 Sep 2015 08:08:52 -0600 [thread overview]
Message-ID: <55F82674.3070608@redhat.com> (raw)
In-Reply-To: <87wpvr4y51.fsf@blackfin.pond.sub.org>
[-- Attachment #1: Type: text/plain, Size: 1464 bytes --]
On 09/15/2015 07:20 AM, Markus Armbruster wrote:
>>>
>>> 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 ?
With the rest of the series, qom-get can be used to trigger this code
path. Since that is under user control, a user on a 32-bit platform
could spin in a stupid loop of qom-get to eventually hit the assert.
Not likely to happen.
>> If not, then
>> it would not seem critical to fix before release, as this is
>> just the generator code
>
> SIZE_MAX visits seem unlikely even when SIZE_MAX is only 2^32-1. It
> would be fatal, though: QEMU would crash.
>
> I'll reword to "we'll want to fix it".
Yes, that improved wording is fine. And I think we already have some
idea of what the fix involves (I posted some preliminary analysis, and
Markus will do the actual deep dive); it's just that holding up this
series for the fix isn't the way to handle it.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2015-09-15 14:09 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-14 17:57 [Qemu-devel] [PATCH v7 00/26] qapi: QMP introspection Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 01/26] qapi: Rename class QAPISchema to QAPISchemaParser Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 02/26] qapi: New QAPISchema intermediate reperesentation Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 03/26] qapi: QAPISchema code generation helper methods Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 04/26] qapi: New QAPISchemaVisitor Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 05/26] tests/qapi-schema: Convert test harness to QAPISchemaVisitor Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 06/26] qapi-types: Convert to QAPISchemaVisitor, fixing flat unions Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 07/26] qapi-visit: Convert to QAPISchemaVisitor, fixing bugs Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 08/26] qapi-commands: Convert to QAPISchemaVisitor Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 09/26] qapi: De-duplicate enum code generation Markus Armbruster
2015-09-15 10:46 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 10/26] qapi-event: Eliminate global variable event_enum_value Markus Armbruster
2015-09-15 10:47 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 11/26] qapi-event: Convert to QAPISchemaVisitor, fixing data with base Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 12/26] qapi: Replace dirty is_c_ptr() by method c_null() Markus Armbruster
2015-09-15 10:48 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 13/26] qapi: Clean up after recent conversions to QAPISchemaVisitor Markus Armbruster
2015-09-15 10:52 ` Daniel P. Berrange
2015-09-15 14:03 ` Eric Blake
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 14/26] qapi-visit: Rearrange code a bit Markus Armbruster
2015-09-15 10:53 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 15/26] qapi-commands: Rearrange code Markus Armbruster
2015-09-15 10:54 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 16/26] qapi: Rename qmp_marshal_input_FOO() to qmp_marshal_FOO() Markus Armbruster
2015-09-15 10:55 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 17/26] qapi: De-duplicate parameter list generation Markus Armbruster
2015-09-15 10:57 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 18/26] qapi-commands: De-duplicate output marshaling functions Markus Armbruster
2015-09-15 11:10 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 19/26] qapi: Improve built-in type documentation Markus Armbruster
2015-09-15 11:15 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 20/26] qapi: Make output visitor return qnull() instead of NULL Markus Armbruster
2015-09-14 19:07 ` Eric Blake
2015-09-15 11:37 ` Daniel P. Berrange
2015-09-15 13:20 ` Markus Armbruster
2015-09-15 14:08 ` Eric Blake [this message]
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 21/26] qapi: Introduce a first class 'any' type Markus Armbruster
2015-09-15 11:39 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 22/26] qom: Don't use 'gen': false for qom-get, qom-set, object-add Markus Armbruster
2015-09-15 11:42 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 23/26] qapi-schema: Fix up misleading specification of netdev_add Markus Armbruster
2015-09-15 11:43 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 24/26] qapi: Pseudo-type '**' is now unused, drop it Markus Armbruster
2015-09-15 11:44 ` Daniel P. Berrange
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 25/26] qapi: New QMP command query-qmp-schema for QMP introspection Markus Armbruster
2015-09-14 17:57 ` [Qemu-devel] [PATCH v7 26/26] qapi-introspect: Hide type names Markus Armbruster
2015-09-15 18:14 ` [Qemu-devel] [PATCH v7 00/26] qapi: QMP introspection Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55F82674.3070608@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.