From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:36321) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0zQ9-0006qd-Do for qemu-devel@nongnu.org; Tue, 06 Sep 2011 13:26:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R0zQ6-0001pd-R9 for qemu-devel@nongnu.org; Tue, 06 Sep 2011 13:26:49 -0400 Received: from e7.ny.us.ibm.com ([32.97.182.137]:60928) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R0zQ6-0001oe-OJ for qemu-devel@nongnu.org; Tue, 06 Sep 2011 13:26:46 -0400 Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p86G6JIh004790 for ; Tue, 6 Sep 2011 12:06:19 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p86HQX1b216802 for ; Tue, 6 Sep 2011 13:26:33 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p86HPTQE008680 for ; Tue, 6 Sep 2011 14:25:32 -0300 From: "Aneesh Kumar K.V" In-Reply-To: <4E662EC4.4050705@codemonkey.ws> References: <4E66027C.3090909@redhat.com> <4E662EC4.4050705@codemonkey.ws> Date: Tue, 06 Sep 2011 22:55:17 +0530 Message-ID: <87hb4pd1mq.fsf@skywalker.in.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] glib mainloop breaks virtfs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori , Gerd Hoffmann Cc: "qemu-devel@nongnu.org" On Tue, 06 Sep 2011 09:31:32 -0500, Anthony Liguori wrote: > On 09/06/2011 06:22 AM, Gerd Hoffmann wrote: > > Hi, > > > > virtfs stopped working for me in master, the guest (fedora 15) just > > hangs at boot when mounting the virtfs filesystems. Bisecting points to > > this commit: > > > > rincewind kraxel ~/projects/qemu ((69e5bb6...)|BISECTING)# git bisect good > > 4d88a2ac8643265108ef1fb47ceee5d7b28e19f2 is the first bad commit > > commit 4d88a2ac8643265108ef1fb47ceee5d7b28e19f2 > > Author: Anthony Liguori > > Date: Mon Aug 22 08:12:53 2011 -0500 > > > > main: switch qemu_set_fd_handler to g_io_add_watch > > The v9fs code uses qemu_set_fd_handler to trigger coroutines. I suspect > this is not going to be a fun one to debug. > > This changeset changes the ordering of when callbacks are fired so it > may be triggering a latent bug in the coroutine usage in virtio-9p. > Aneesh, can you take a look at it? > With master 344eecf6995f4a0ad1d887cec922f6806f91a3f8 I am getting SIGABRT *** glibc detected *** /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64: corrupted double-linked list: 0x000000000154ed60 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x76bb6)[0x7ffff5a9abb6] /lib/x86_64-linux-gnu/libc.so.6(+0x7a931)[0x7ffff5a9e931] /lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x6e)[0x7ffff5aa031e] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x4f3b36] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_malloc+0x23)[0x7ffff7524a63] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_io_channel_unix_new+0x15)[0x7ffff7562635] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x46a019] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x4ed2e3] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x4ed3d3] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x4ed7a3] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x4edc7e] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x5e10ef] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x46ad04] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x46a73d] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x46b0ff] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x5d6740] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x5d6cbc] /home/kvaneesh/bin-local/qemu-9p/bin/qemu-system-x86_64[0x5a9996] /lib/x86_64-linux-gnu/libpthread.so.0(+0x6d8c)[0x7ffff5dbed8c] /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7ffff5b0a04d] gdb stack Program received signal SIGABRT, Aborted. [Switching to Thread 0x7ffff1ec8700 (LWP 4384)] 0x00007ffff5a57d05 in raise () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) where #0 0x00007ffff5a57d05 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff5a5bab6 in abort () from /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007ffff5a90d7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #3 0x00007ffff5a9abb6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #4 0x00007ffff5a9e931 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #5 0x00007ffff5aa031e in malloc () from /lib/x86_64-linux-gnu/libc.so.6 #6 0x00000000004f3b36 in malloc_and_trace (n_bytes=120) at /home/opensource/sources/qemu/qemu-upstream/vl.c:2146 #7 0x00007ffff7524a63 in g_malloc () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #8 0x00007ffff7562635 in g_io_channel_unix_new () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #9 0x000000000046a019 in qemu_set_fd_handler (fd=18, fd_read=0x4ed205 , fd_write=0, opaque=0x14d7190) at /home/opensource/sources/qemu/qemu-upstream/iohandler.c:139 #10 0x00000000004ed2e3 in virtio_pci_set_host_notifier_fd_handler (proxy=0x14d6440, n=0, assign=true) at /home/opensource/sources/qemu/qemu-upstream/hw/virtio-pci.c:206 #11 0x00000000004ed3d3 in virtio_pci_start_ioeventfd (proxy=0x14d6440) at /home/opensource/sources/qemu/qemu-upstream/hw/virtio-pci.c:234 #12 0x00000000004ed7a3 in virtio_ioport_write (opaque=0x14d6440, addr=18, val=7) at /home/opensource/sources/qemu/qemu-upstream/hw/virtio-pci.c:329 #13 0x00000000004edc7e in virtio_pci_config_writeb (opaque=0x14d6440, addr=18, val=7) at /home/opensource/sources/qemu/qemu-upstream/hw/virtio-pci.c:446 #14 0x00000000005e10ef in memory_region_iorange_write (iorange=0x14d68e8, offset=18, width=1, data=7) at /home/opensource/sources/qemu/qemu-upstream/memory.c:421 #15 0x000000000046ad04 in ioport_writeb_thunk (opaque=0x14d68e8, addr=49234, data=7) at /home/opensource/sources/qemu/qemu-upstream/ioport.c:210 #16 0x000000000046a73d in ioport_write (index=0, address=49234, data=7) at /home/opensource/sources/qemu/qemu-upstream/ioport.c:81 #17 0x000000000046b0ff in cpu_outb (addr=49234, val=7 '\a') at /home/opensource/sources/qemu/qemu-upstream/ioport.c:273 #18 0x00000000005d6740 in kvm_handle_io (port=49234, data=0x7ffff7ff3000, direction=1, size=1, count=1) at /home/opensource/sources/qemu/qemu-upstream/kvm-all.c:834 #19 0x00000000005d6cbc in kvm_cpu_exec (env=0x123a430) at /home/opensource/sources/qemu/qemu-upstream/kvm-all.c:976 #20 0x00000000005a9996 in qemu_kvm_cpu_thread_fn (arg=0x123a430) at /home/opensource/sources/qemu/qemu-upstream/cpus.c:661 #21 0x00007ffff5dbed8c in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #22 0x00007ffff5b0a04d in clone () from /lib/x86_64-linux-gnu/libc.so.6 #23 0x0000000000000000 in ?? () (gdb) Reverting 4d88a2ac8643265108ef1fb47ceee5d7b28e19f2 fixes the issue. This is on ubuntu 11.04. -aneesh