[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Fix make check breakage (was [PULL 00/14] QMP queue)
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] Fix make check breakage (was [PULL 00/14] QMP queue) |
Date: |
Wed, 15 Jan 2014 10:55:47 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Luiz Capitulino <address@hidden> writes:
> On Tue, 14 Jan 2014 17:44:51 +0100
> Kevin Wolf <address@hidden> wrote:
>
>> Am 14.01.2014 um 04:38 hat Edgar E. Iglesias geschrieben:
>> > On Tue, Jan 14, 2014 at 09:27:10AM +1000, Peter Crosthwaite wrote:
>> > > Ping,
>> > >
>> > > Has this one been forgotten or are there issues? PMM had a small
>> > > comment, but he waived it AFAICT.
>> >
>> > Pong,
>> >
>> > I've merged it now, thanks!
>>
>> I believe it's something in this pull requests that breaks make check.
>
> And you're right. But first, let me confirm that we're talking about the
> same breakage. This is what I'm getting:
>
> make tests/check-qom-interface
> libqemuutil.a(qemu-error.o): In function `error_vprintf':
> /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-error.c:23:
> undefined reference to `cur_mon'
> /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-error.c:24:
> undefined reference to `cur_mon'
> /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-error.c:24:
> undefined reference to `monitor_vprintf'
> libqemuutil.a(qemu-error.o): In function `error_printf_unless_qmp':
> /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-error.c:47:
> undefined reference to `monitor_cur_is_qmp'
> libqemuutil.a(qemu-error.o): In function `error_print_loc':
> /home/lcapitulino/work/src/upstream/qmp-unstable/util/qemu-error.c:174:
> undefined reference to `cur_mon'
> collect2: error: ld returned 1 exit status
> make: *** [tests/check-qom-interface] Error 1
>
> I tried bisecting it, but git bisect weren't capable of finding the
> culprit. So debugged it, and the problem was introduced by:
>
> commit 594278718323ca7bffaab0fb7fc6c82fa2c1cd5f
> Author: Peter Crosthwaite <address@hidden>
> Date: Wed Jan 1 18:49:52 2014 -0800
>
> qerror: Remove assert_no_error()
>
Are you sure you don't mean commit 5d24ee7 "error: Add error_abort"?
> There isn't nothing really wrong with this commit. The problem seems to
> be that the tests link against libqemuutil.a and this library pulls in
> everything from util/. The commit above changed util/error.c to call
> error_report(),
Yes, 5d24ee7 does that.
> which depends on 'cur_mon', which is only made available
> by monitor.o.
And stubs/mon-set-error.o
> I don't think we want to mess up with including monitor.o on libqemuutil.a.
> Besides, I now find it a bit weird to call error_report() from an error
> reporting function. So it's better to just call fprintf(stderr,) instead.
It's not weird at all. Higher layer calls lower layer.
> Peter, Markus, are you ok with this patch?
>
> PS: I do run make check before sending a pull request, and did run this
> time too. Not sure how I didn't catch this. Thanks for the report
> Kevin!
>
> diff --git a/util/error.c b/util/error.c
> index f11f1d5..7c7650c 100644
> --- a/util/error.c
> +++ b/util/error.c
> @@ -44,7 +44,7 @@ void error_set(Error **errp, ErrorClass err_class, const
> char *fmt, ...)
> err->err_class = err_class;
>
> if (errp == &error_abort) {
> - error_report("%s", error_get_pretty(err));
> + fprintf(stderr, "%s", error_get_pretty(err));
> abort();
> }
>
> @@ -80,7 +80,7 @@ void error_set_errno(Error **errp, int os_errno, ErrorClass
> err_class,
> err->err_class = err_class;
>
> if (errp == &error_abort) {
> - error_report("%s", error_get_pretty(err));
> + fprintf(stderr, "%s", error_get_pretty(err));
> abort();
> }
>
> @@ -125,7 +125,7 @@ void error_set_win32(Error **errp, int win32_err,
> ErrorClass err_class,
> err->err_class = err_class;
>
> if (errp == &error_abort) {
> - error_report("%s", error_get_pretty(err));
> + fprintf(stderr, "%s", error_get_pretty(err));
> abort();
> }
>
> @@ -171,7 +171,7 @@ void error_free(Error *err)
> void error_propagate(Error **dst_err, Error *local_err)
> {
> if (local_err && dst_err == &error_abort) {
> - error_report("%s", error_get_pretty(local_err));
> + fprintf(stderr, "%s", error_get_pretty(local_err));
> abort();
> } else if (dst_err && !*dst_err) {
> *dst_err = local_err;
Error message screwed up!
Before:
$ qemu -msg timestamp=on -global i440FX-pcihost.foo=bar
2014-01-15T09:50:18.066725Z upstream-qemu: Property '.foo' not found
Aborted (core dumped)
After:
Property '.foo' not foundAborted (core dumped)
Note the loss of timestamp, name of executable, location, and the final
newline. Please fix.
Amazing super-secret trick to get error messages fit for human
consumption: reproduce them before you commit! ;-P
- [Qemu-devel] [PULL 07/14] monitor: add object-add (QMP) and object_add (HMP) command, (continued)
- [Qemu-devel] [PULL 07/14] monitor: add object-add (QMP) and object_add (HMP) command, Luiz Capitulino, 2014/01/06
- [Qemu-devel] [PULL 13/14] qerror: Remove assert_no_error(), Luiz Capitulino, 2014/01/06
- [Qemu-devel] [PULL 14/14] migration: qmp_migrate(): keep working after syntax error, Luiz Capitulino, 2014/01/06
- Re: [Qemu-devel] [PULL 00/14] QMP queue, Peter Maydell, 2014/01/06
- Re: [Qemu-devel] [PULL 00/14] QMP queue, Peter Crosthwaite, 2014/01/13