* Re: [Qemu-devel] qemu crashed when starting vm(kvm) with vnc connect [not found] <D3E216785288A145B7BC975F83A2ED103FE154C1@szxeml556-mbx.china.huawei.com> @ 2013-04-05 6:34 ` Stefan Hajnoczi [not found] ` <D3E216785288A145B7BC975F83A2ED103FE16528@szxeml556-mbx.china.huawei.com> 0 siblings, 1 reply; 6+ messages in thread From: Stefan Hajnoczi @ 2013-04-05 6:34 UTC (permalink / raw) To: Zhanghaoyu (A) Cc: kvm list, qemu-devel, linux-kernel, Marcelo Tosatti, Huangweidong (C), Zanghongyong, Luonengjun, Zhanghuanzhong On Tue, Apr 02, 2013 at 09:02:02AM +0000, Zhanghaoyu (A) wrote: > I start a kvm VM with vnc(using the zrle protocol) connect, sometimes qemu program crashed during starting period, received signal SIGABRT. > Trying about 20 times, this crash may be reproduced. > I guess the cause memory corruption or double free. Which version of QEMU are you running? Please try qemu.git/master. Stefan ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <D3E216785288A145B7BC975F83A2ED103FE16528@szxeml556-mbx.china.huawei.com>]
* Re: 答复: [Qemu-devel] qemu crashed when starting vm(kvm) with vnc connect [not found] ` <D3E216785288A145B7BC975F83A2ED103FE16528@szxeml556-mbx.china.huawei.com> @ 2013-04-08 10:50 ` Stefan Hajnoczi 2013-04-08 12:27 ` reply: reply: " Zhanghaoyu (A) 0 siblings, 1 reply; 6+ messages in thread From: Stefan Hajnoczi @ 2013-04-08 10:50 UTC (permalink / raw) To: Zhanghaoyu (A) Cc: kvm list, qemu-devel, linux-kernel, Marcelo Tosatti, Huangweidong (C), Zanghongyong, Luonengjun, Zhanghuanzhong On Sun, Apr 07, 2013 at 04:58:07AM +0000, Zhanghaoyu (A) wrote: > >> I start a kvm VM with vnc(using the zrle protocol) connect, sometimes qemu program crashed during starting period, received signal SIGABRT. > >> Trying about 20 times, this crash may be reproduced. > >> I guess the cause memory corruption or double free. > > > > Which version of QEMU are you running? > > > > Please try qemu.git/master. > > > > Stefan > > I used the QEMU download from qemu.git (http://git.qemu.org/git/qemu.git). Great, thanks! Can you please post a backtrace? The easiest way is: $ ulimit -c unlimited $ qemu-system-x86_64 -enable-kvm -m 1024 ... ...crash... $ gdb -c qemu-system-x86_64.core (gdb) bt Depending on how your system is configured the core file might have a different filename but there should be a file name *core* the current working directory after the crash. The backtrace will make it possible to find out where the crash occurred. Thanks, Stefan ^ permalink raw reply [flat|nested] 6+ messages in thread
* reply: reply: [Qemu-devel] qemu crashed when starting vm(kvm) with vnc connect 2013-04-08 10:50 ` 答复: " Stefan Hajnoczi @ 2013-04-08 12:27 ` Zhanghaoyu (A) 2013-04-11 9:29 ` [Qemu-devel] reply: reply: " Stefan Hajnoczi 0 siblings, 1 reply; 6+ messages in thread From: Zhanghaoyu (A) @ 2013-04-08 12:27 UTC (permalink / raw) To: Stefan Hajnoczi Cc: kvm list, qemu-devel, linux-kernel, Marcelo Tosatti, Huangweidong (C), Zanghongyong, Luonengjun, Zhanghuanzhong On Sun, Apr 07, 2013 at 04:58:07AM +0000, Zhanghaoyu (A) wrote: > >>> I start a kvm VM with vnc(using the zrle protocol) connect, sometimes qemu program crashed during starting period, received signal SIGABRT. > >>> Trying about 20 times, this crash may be reproduced. > >>> I guess the cause memory corruption or double free. > >> > >> Which version of QEMU are you running? > >> > >> Please try qemu.git/master. > >> > >> Stefan > > > >I used the QEMU download from qemu.git (http://git.qemu.org/git/qemu.git). > > Great, thanks! Can you please post a backtrace? > > The easiest way is: > > $ ulimit -c unlimited > $ qemu-system-x86_64 -enable-kvm -m 1024 ... > ...crash... > $ gdb -c qemu-system-x86_64.core > (gdb) bt > > Depending on how your system is configured the core file might have a different filename but there should be a file name *core* the current working directory after the crash. > > The backtrace will make it possible to find out where the crash occurred. > > Thanks, > Stefan backtrace from core file is shown as below: Program received signal SIGABRT, Aborted. 0x00007f32eda3dd95 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00007f32eda3dd95 in raise () from /lib64/libc.so.6 #1 0x00007f32eda3f2ab in abort () from /lib64/libc.so.6 #2 0x00007f32eda77ece in __libc_message () from /lib64/libc.so.6 #3 0x00007f32eda7dc06 in malloc_printerr () from /lib64/libc.so.6 #4 0x00007f32eda7ecda in _int_free () from /lib64/libc.so.6 #5 0x00007f32efd3452c in free_and_trace (mem=0x7f3290000cd0) at vl.c:2880 #6 0x00007f32efd251a1 in buffer_free (buffer=0x7f32f0c82890) at ui/vnc.c:505 #7 0x00007f32efd20c56 in vnc_zrle_clear (vs=0x7f32f0c762d0) at ui/vnc-enc-zrle.c:364 #8 0x00007f32efd26d07 in vnc_disconnect_finish (vs=0x7f32f0c762d0) at ui/vnc.c:1050 #9 0x00007f32efd275c5 in vnc_client_read (opaque=0x7f32f0c762d0) at ui/vnc.c:1349 #10 0x00007f32efcb397c in qemu_iohandler_poll (readfds=0x7f32f074d020, writefds=0x7f32f074d0a0, xfds=0x7f32f074d120, ret=1) at iohandler.c:124 #11 0x00007f32efcb46e8 in main_loop_wait (nonblocking=0) at main-loop.c:417 #12 0x00007f32efd31159 in main_loop () at vl.c:2133 #13 0x00007f32efd38070 in main (argc=46, argv=0x7fff7f5df178, envp=0x7fff7f5df2f0) at vl.c:4481 Zhang Haoyu ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] reply: reply: qemu crashed when starting vm(kvm) with vnc connect 2013-04-08 12:27 ` reply: reply: " Zhanghaoyu (A) @ 2013-04-11 9:29 ` Stefan Hajnoczi 2013-04-18 9:25 ` Gerd Hoffmann 0 siblings, 1 reply; 6+ messages in thread From: Stefan Hajnoczi @ 2013-04-11 9:29 UTC (permalink / raw) To: Zhanghaoyu (A) Cc: Huangweidong (C), kvm list, Marcelo Tosatti, Luonengjun, qemu-devel, linux-kernel, Zanghongyong, Zhanghuanzhong, corentin.chary, Gerd Hoffmann On Mon, Apr 08, 2013 at 12:27:06PM +0000, Zhanghaoyu (A) wrote: > On Sun, Apr 07, 2013 at 04:58:07AM +0000, Zhanghaoyu (A) wrote: > > >>> I start a kvm VM with vnc(using the zrle protocol) connect, sometimes qemu program crashed during starting period, received signal SIGABRT. > > >>> Trying about 20 times, this crash may be reproduced. > > >>> I guess the cause memory corruption or double free. > > >> > > >> Which version of QEMU are you running? > > >> > > >> Please try qemu.git/master. > > >> > > >> Stefan > > > > > >I used the QEMU download from qemu.git (http://git.qemu.org/git/qemu.git). > > > > Great, thanks! Can you please post a backtrace? > > > > The easiest way is: > > > > $ ulimit -c unlimited > > $ qemu-system-x86_64 -enable-kvm -m 1024 ... > > ...crash... > > $ gdb -c qemu-system-x86_64.core > > (gdb) bt > > > > Depending on how your system is configured the core file might have a different filename but there should be a file name *core* the current working directory > after the crash. > > > > The backtrace will make it possible to find out where the crash occurred. > > > > Thanks, > > Stefan > > backtrace from core file is shown as below: > > Program received signal SIGABRT, Aborted. > 0x00007f32eda3dd95 in raise () from /lib64/libc.so.6 > (gdb) bt > #0 0x00007f32eda3dd95 in raise () from /lib64/libc.so.6 > #1 0x00007f32eda3f2ab in abort () from /lib64/libc.so.6 > #2 0x00007f32eda77ece in __libc_message () from /lib64/libc.so.6 > #3 0x00007f32eda7dc06 in malloc_printerr () from /lib64/libc.so.6 > #4 0x00007f32eda7ecda in _int_free () from /lib64/libc.so.6 > #5 0x00007f32efd3452c in free_and_trace (mem=0x7f3290000cd0) at vl.c:2880 > #6 0x00007f32efd251a1 in buffer_free (buffer=0x7f32f0c82890) at ui/vnc.c:505 > #7 0x00007f32efd20c56 in vnc_zrle_clear (vs=0x7f32f0c762d0) > at ui/vnc-enc-zrle.c:364 > #8 0x00007f32efd26d07 in vnc_disconnect_finish (vs=0x7f32f0c762d0) > at ui/vnc.c:1050 > #9 0x00007f32efd275c5 in vnc_client_read (opaque=0x7f32f0c762d0) > at ui/vnc.c:1349 > #10 0x00007f32efcb397c in qemu_iohandler_poll (readfds=0x7f32f074d020, > writefds=0x7f32f074d0a0, xfds=0x7f32f074d120, ret=1) at iohandler.c:124 > #11 0x00007f32efcb46e8 in main_loop_wait (nonblocking=0) at main-loop.c:417 > #12 0x00007f32efd31159 in main_loop () at vl.c:2133 > #13 0x00007f32efd38070 in main (argc=46, argv=0x7fff7f5df178, > envp=0x7fff7f5df2f0) at vl.c:4481 CCing Corentin and Gerd who are more familiar with the VNC code than me. Stefan ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] reply: reply: qemu crashed when starting vm(kvm) with vnc connect 2013-04-11 9:29 ` [Qemu-devel] reply: reply: " Stefan Hajnoczi @ 2013-04-18 9:25 ` Gerd Hoffmann 2013-04-18 11:19 ` reply: " Zhanghaoyu (A) 0 siblings, 1 reply; 6+ messages in thread From: Gerd Hoffmann @ 2013-04-18 9:25 UTC (permalink / raw) To: Stefan Hajnoczi Cc: Zhanghaoyu (A), Huangweidong (C), kvm list, Marcelo Tosatti, Luonengjun, qemu-devel, linux-kernel, Zanghongyong, Zhanghuanzhong, corentin.chary On 04/11/13 11:29, Stefan Hajnoczi wrote: > On Mon, Apr 08, 2013 at 12:27:06PM +0000, Zhanghaoyu (A) wrote: >> On Sun, Apr 07, 2013 at 04:58:07AM +0000, Zhanghaoyu (A) wrote: >>>>>> I start a kvm VM with vnc(using the zrle protocol) connect, sometimes qemu program crashed during starting period, received signal SIGABRT. >>>>>> Trying about 20 times, this crash may be reproduced. >>>>>> I guess the cause memory corruption or double free. >>>>> >>>>> Which version of QEMU are you running? >>>>> >>>>> Please try qemu.git/master. Please try again with latest master, might be fixed meanwhile. If it still happens pleas provide full qemu and vnc client command lines. >> backtrace from core file is shown as below: >> >> Program received signal SIGABRT, Aborted. >> #8 0x00007f32efd26d07 in vnc_disconnect_finish (vs=0x7f32f0c762d0) >> at ui/vnc.c:1050 Do you have a vnc client connected? Do you close it? Any errors reported by the vnc client (maybe it disconnects due to an error in the data stream)? cheers, Gerd ^ permalink raw reply [flat|nested] 6+ messages in thread
* reply: [Qemu-devel] reply: reply: qemu crashed when starting vm(kvm) with vnc connect 2013-04-18 9:25 ` Gerd Hoffmann @ 2013-04-18 11:19 ` Zhanghaoyu (A) 0 siblings, 0 replies; 6+ messages in thread From: Zhanghaoyu (A) @ 2013-04-18 11:19 UTC (permalink / raw) To: Gerd Hoffmann, Stefan Hajnoczi Cc: Huangweidong (C), kvm list, Marcelo Tosatti, Luonengjun, qemu-devel, linux-kernel, Zanghongyong, Zhanghuanzhong, corentin.chary > > On Mon, Apr 08, 2013 at 12:27:06PM +0000, Zhanghaoyu (A) wrote: > >> On Sun, Apr 07, 2013 at 04:58:07AM +0000, Zhanghaoyu (A) wrote: > >>>>>> I start a kvm VM with vnc(using the zrle protocol) connect, sometimes qemu program crashed during starting period, received signal SIGABRT. > >>>>>> Trying about 20 times, this crash may be reproduced. > >>>>>> I guess the cause memory corruption or double free. > >>>>> > >>>>> Which version of QEMU are you running? > >>>>> > >>>>> Please try qemu.git/master. > > Please try again with latest master, might be fixed meanwhile. > > If it still happens pleas provide full qemu and vnc client command lines. > > >> backtrace from core file is shown as below: > >> > >> Program received signal SIGABRT, Aborted. > > >> #8 0x00007f32efd26d07 in vnc_disconnect_finish (vs=0x7f32f0c762d0) > >> at ui/vnc.c:1050 > > Do you have a vnc client connected? Do you close it? > I have a vnc client connected, it was auto closed while qemu crashed. > Any errors reported by the vnc client (maybe it disconnects due to an error in the data stream)? > No errors reported by the vnc client, just popup a reconnect window. And, I have tried to fix this bug, not reproduce this crash after tried about 100 times, patch is shown as below, --- a/ui/vnc-jobs.c 2013-04-18 20:10:07.000000000 +0800 +++ b/ui/vnc-jobs.c 2013-04-18 20:14:06.000000000 +0800 @@ -234,7 +234,6 @@ static int vnc_worker_thread_loop(VncJob vnc_unlock_output(job->vs); goto disconnected; } - vnc_unlock_output(job->vs); /* Make a local copy of vs and switch output buffers */ vnc_async_encoding_start(job->vs, &vs); @@ -252,6 +251,8 @@ static int vnc_worker_thread_loop(VncJob if (job->vs->csock == -1) { vnc_unlock_display(job->vs->vd); + vnc_async_encoding_end(job->vs, &vs); + vnc_unlock_output(job->vs); goto disconnected; } @@ -269,7 +270,6 @@ static int vnc_worker_thread_loop(VncJob vs.output.buffer[saved_offset] = (n_rectangles >> 8) & 0xFF; vs.output.buffer[saved_offset + 1] = n_rectangles & 0xFF; - vnc_lock_output(job->vs); if (job->vs->csock != -1) { buffer_reserve(&job->vs->jobs_buffer, vs.output.offset); buffer_append(&job->vs->jobs_buffer, vs.output.buffer, @@ -278,6 +278,8 @@ static int vnc_worker_thread_loop(VncJob vnc_async_encoding_end(job->vs, &vs); qemu_bh_schedule(job->vs->bh); + } else { + vnc_async_encoding_end(job->vs, &vs); } vnc_unlock_output(job->vs); Thanks, Zhang Haoyu ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-04-18 11:20 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <D3E216785288A145B7BC975F83A2ED103FE154C1@szxeml556-mbx.china.huawei.com> 2013-04-05 6:34 ` [Qemu-devel] qemu crashed when starting vm(kvm) with vnc connect Stefan Hajnoczi [not found] ` <D3E216785288A145B7BC975F83A2ED103FE16528@szxeml556-mbx.china.huawei.com> 2013-04-08 10:50 ` 答复: " Stefan Hajnoczi 2013-04-08 12:27 ` reply: reply: " Zhanghaoyu (A) 2013-04-11 9:29 ` [Qemu-devel] reply: reply: " Stefan Hajnoczi 2013-04-18 9:25 ` Gerd Hoffmann 2013-04-18 11:19 ` reply: " Zhanghaoyu (A)
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).