qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Amos Kong <akong@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: kwolf@redhat.com, aliguori@us.ibm.com, qemu-devel@nongnu.org,
	armbru@redhat.com, pbonzini@redhat.com, eblake@redhat.com
Subject: Re: [Qemu-devel] [RFC 00/27]: add new error format
Date: Wed, 01 Aug 2012 19:33:27 +0800	[thread overview]
Message-ID: <50191407.1050606@redhat.com> (raw)
In-Reply-To: <20120731114436.53be2610@doriath.home>

On 31/07/12 22:44, Luiz Capitulino wrote:
> On Fri, 27 Jul 2012 18:31:41 -0300
> Luiz Capitulino<lcapitulino@redhat.com>  wrote:
>
>> [Please, read below why this is an RFC]
>>
>> This series implements the 'Plan for error handling in QMP' as described
>> by Anthony in this email:



Tested with 
http://repo.or.cz/w/qemu/qmp-unstable.git/shortlog/refs/heads/error/new-format/v1


| bool error_is_type(Error *err, ErrorClass err_class, const char *fmt)
| {
|     const char *error_class;
|     char *ptr;
|     char *end;
|
|     if (!err) {
|         return false;
|     }
|
|     ptr = strstr(fmt, "'class': '");

                           ^^^ "'class: '" doesn't exist in *fmt

|     assert(ptr != NULL);
|



(gdb) r
Starting program: /home/devel/qemu/x86_64-softmmu/qemu-system-x86_64 
--enable-kvm -monitor stdio -boot n -vnc :1
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff1f3f700 (LWP 16427)]
[New Thread 0x7fffe3dfe700 (LWP 16429)]
QEMU 1.1.50 monitor - type 'help' for more information
(qemu) migrate -d tcp:0:1234
qemu-system-x86_64: error.c:92: error_is_type: Assertion `ptr != ((void 
*)0)' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff4ed48a5 in raise () from /lib64/libc.so.6

(gdb) bt
#0  0x00007ffff4ed48a5 in raise () from /lib64/libc.so.6
#1  0x00007ffff4ed6085 in abort () from /lib64/libc.so.6
#2  0x00007ffff4ecda1e in __assert_fail_base () from /lib64/libc.so.6
#3  0x00007ffff4ecdae0 in __assert_fail () from /lib64/libc.so.6
#4  0x00007ffff7ca86b9 in error_is_type (err=0x7ffff8bf0a90, 
err_class=ERROR_CLASS_GENERIC_ERROR, fmt=0x7ffff7f63030 "Connection can 
not be completed immediately") at error.c:92
#5  0x00007ffff7db645f in tcp_start_outgoing_migration 
(s=0x7ffff82ef6c0, host_port=0x7ffff8c1a064 "0:1234", 
errp=0x7fffffffc8f8) at migration-tcp.c:93
#6  0x00007ffff7db7d70 in qmp_migrate (uri=0x7ffff8c1a060 "tcp:0:1234", 
has_blk=false, blk=false, has_inc=false, inc=false, has_detach=false, 
detach=false, errp=0x7fffffffc8f8)
     at migration.c:431
#7  0x00007ffff7cabbf8 in hmp_migrate (mon=0x7ffff8bb4760, 
qdict=0x7ffff8c16de0) at hmp.c:948
#8  0x00007ffff7eb60e8 in handle_user_command (mon=0x7ffff8bb4760, 
cmdline=0x7ffff8bb4bd0 "migrate -d tcp:0:1234") at 
/home/devel/qemu/monitor.c:3882
#9  0x00007ffff7eb7ad4 in monitor_command_cb (mon=0x7ffff8bb4760, 
cmdline=0x7ffff8bb4bd0 "migrate -d tcp:0:1234", opaque=0x0) at 
/home/devel/qemu/monitor.c:4499
#10 0x00007ffff7df9d35 in readline_handle_byte (rs=0x7ffff8bb4bd0, 
ch=13) at readline.c:373
#11 0x00007ffff7eb7a0d in monitor_read (opaque=0x7ffff8bb4760, 
buf=0x7fffffffcae0 "\r", size=1) at /home/devel/qemu/monitor.c:4485
#12 0x00007ffff7ddcbf1 in qemu_chr_be_write (s=0x7ffff8baf580, 
buf=0x7fffffffcae0 "\r", len=1) at qemu-char.c:164
#13 0x00007ffff7dde022 in fd_chr_read (opaque=0x7ffff8baf580) at 
qemu-char.c:588
#14 0x00007ffff7ce8392 in qemu_iohandler_poll (readfds=0x7ffff87042e0, 
writefds=0x7ffff8704360, xfds=0x7ffff87043e0, ret=1) at iohandler.c:121
#15 0x00007ffff7db5aca in main_loop_wait (nonblocking=0) at main-loop.c:497
#16 0x00007ffff7dadb70 in main_loop () at /home/devel/qemu/vl.c:1560
#17 0x00007ffff7db463d in main (argc=8, argv=0x7fffffffdfe8, 
envp=0x7fffffffe030) at /home/devel/qemu/vl.c:3658
(gdb) frame 4
#4  0x00007ffff7ca86b9 in error_is_type (err=0x7ffff8bf0a90, 
err_class=ERROR_CLASS_GENERIC_ERROR, fmt=0x7ffff7f63030 "Connection can 
not be completed immediately") at error.c:92
92          assert(ptr != NULL);
(gdb) l
87          if (!err) {
88              return false;
89          }
90
91          ptr = strstr(fmt, "'class': '");
92          assert(ptr != NULL);
93          ptr += strlen("'class': '");
94
95          end = strchr(ptr, '\'');
96          assert(end != NULL);





-- 
			Amos.

  reply	other threads:[~2012-08-01 11:33 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-27 21:31 [Qemu-devel] [RFC 00/27]: add new error format Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 01/27] monitor: drop unused monitor debug code Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 02/27] qerror: QERR_AMBIGUOUS_PATH: drop %(object) from human msg Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 03/27] qerror: QERR_DEVICE_ENCRYPTED: add filename info to " Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 04/27] qerror: reduce public exposure Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 05/27] qerror: drop qerror_abort() Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 06/27] qerror: QError: drop file, linenr, func Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 07/27] qerror: qerror_format(): return an allocated string Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 08/27] qerror: don't delay error message construction Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 09/27] error: " Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 10/27] qmp: query-block: add 'valid_encryption_key' field Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 11/27] hmp: hmp_cont(): don't rely on QERR_DEVICE_ENCRYPTED Luiz Capitulino
2012-08-01 11:37   ` Markus Armbruster
2012-08-01 13:47     ` Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 12/27] hmp: hmp_change(): don't use error_get_field() Luiz Capitulino
2012-08-01 12:39   ` Markus Armbruster
2012-08-01 12:49     ` Anthony Liguori
2012-08-01 13:51     ` Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 13/27] error: error_is_type(): " Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 14/27] error: drop functions used to get error data Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 15/27] block: block_int: include qerror.h Luiz Capitulino
2012-08-01 12:42   ` Markus Armbruster
2012-08-01 13:58     ` Luiz Capitulino
2012-08-02 15:59       ` Markus Armbruster
2012-07-27 21:31 ` [Qemu-devel] [PATCH 16/27] hmp: hmp.h: include qdict.h Luiz Capitulino
2012-08-01 12:42   ` Markus Armbruster
2012-07-27 21:31 ` [Qemu-devel] [PATCH 17/27] qapi: qapi-types.h: don't include qapi/qapi-types-core.h Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 18/27] qapi: generate correct enum names for camel case enums Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 19/27] qapi: don't convert enum strings to lowercase Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 20/27] qapi-schema: add ErrorClass enum Luiz Capitulino
2012-07-28 14:42   ` Eric Blake
2012-07-27 21:32 ` [Qemu-devel] [PATCH 21/27] qerror: qerror_table: don't use C99 struct initializers Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 22/27] error, qerror: add ErrorClass argument to error functions Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 23/27] qerror: use ErrorClass for QERR_ macro Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 24/27] qmp: switch to the new error format on the wire Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 25/27] qapi: qapi.py: allow the "'" character be escaped Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 26/27] error, qerror: pass desc string to error calls Luiz Capitulino
2012-08-01 11:37   ` Amos Kong
2012-08-01 13:31     ` Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 27/27] qerror: drop qerror_table and qerror_format() Luiz Capitulino
2012-07-31 14:44 ` [Qemu-devel] [RFC 00/27]: add new error format Luiz Capitulino
2012-08-01 11:33   ` Amos Kong [this message]
2012-08-01 13:29     ` Luiz Capitulino
2012-08-02  2:31       ` Amos Kong
2012-08-02 13:31         ` Luiz Capitulino
2012-08-06  6:35           ` Amos Kong
2012-08-06 13:01             ` Luiz Capitulino

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=50191407.1050606@redhat.com \
    --to=akong@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=pbonzini@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).