All of lore.kernel.org
 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 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.