[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 09/23] error: New error_prepend(), error_repo
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v2 09/23] error: New error_prepend(), error_reportf_err() |
Date: |
Fri, 18 Dec 2015 10:13:41 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Eric Blake <address@hidden> writes:
> On 12/17/2015 09:49 AM, Markus Armbruster wrote:
>> Instead of simply propagating an error verbatim, we sometimes want to
>> add to its message, like this:
>>
>> frobnicate(arg, &err);
>> error_setg(errp, "Can't frobnicate %s: %s",
>> arg, error_get_pretty(err));
>
> Did you intend to have literal TABs in the commit message?
Editing accident, fixed.
>> error_free(err);
>>
>> This is suboptimal, because it loses err's hint (if any). Moreover,
>> when errp is &error_abort or is subsequently propagated to
>> &error_abort, the abort message points to the place where we last
>> added to the error, not to the place where it originated.
>>
>> To avoid these issues, provide means to add to an error's message in
>> place:
>>
>> frobnicate(arg, errp);
>> error_prepend(errp, "Can't frobnicate %s: ", arg);
>>
>> Likewise, reporting an error like
>>
>> frobnicate(arg, &err);
>> error_report("Can't frobnicate %s: %s", arg, error_get_pretty(err));
>>
>> can lose err's hint. To avoid:
>>
>> error_reportf_err(err, "Can't frobnicate %s: ", arg);
>>
>> The next commits will put these functions to use.
>>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> ---
>> include/qapi/error.h | 31 +++++++++++++++++++++++++++++--
>> util/error.c | 33 +++++++++++++++++++++++++++++++++
>> 2 files changed, 62 insertions(+), 2 deletions(-)
>>
>
> Reviewed-by: Eric Blake <address@hidden>
Thanks!
- Re: [Qemu-devel] [PATCH v2 17/23] vmdk: Clean up control flow in vmdk_parse_extents() a bit, (continued)
- [Qemu-devel] [PATCH v2 08/23] test-throttle: Simplify qemu_init_main_loop() error handling, Markus Armbruster, 2015/12/17
- [Qemu-devel] [PATCH v2 23/23] s390/sclp: Simplify control flow in sclp_realize(), Markus Armbruster, 2015/12/17
- [Qemu-devel] [PATCH v2 13/23] spapr: Use error_reportf_err(), Markus Armbruster, 2015/12/17
- [Qemu-devel] [PATCH v2 09/23] error: New error_prepend(), error_reportf_err(), Markus Armbruster, 2015/12/17
- [Qemu-devel] [PATCH v2 04/23] error: Use error_report_err() instead of ad hoc prints, Markus Armbruster, 2015/12/17
- [Qemu-devel] [PATCH v2 01/23] qemu-nbd: Replace BSDism <err.h> by error_report(), Markus Armbruster, 2015/12/17
- [Qemu-devel] [PATCH v2 21/23] error: Clean up errors with embedded newlines (again), Markus Armbruster, 2015/12/17