qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 00/27]: add new error format


From: Amos Kong
Subject: Re: [Qemu-devel] [RFC 00/27]: add new error format
Date: Wed, 01 Aug 2012 19:33:27 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20110930 Thunderbird/7.0.1

On 31/07/12 22:44, Luiz Capitulino wrote:
On Fri, 27 Jul 2012 18:31:41 -0300
Luiz Capitulino<address@hidden>  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 via email to

[Prev in Thread] Current Thread [Next in Thread]