From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35460) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VRICg-00085a-2K for qemu-devel@nongnu.org; Wed, 02 Oct 2013 04:54:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VRICb-0001Zq-Nn for qemu-devel@nongnu.org; Wed, 02 Oct 2013 04:54:42 -0400 Date: Wed, 2 Oct 2013 10:54:29 +0200 From: Stefan Hajnoczi Message-ID: <20131002085429.GE2142@stefanha-thinkpad.redhat.com> References: <1378910555-24753-1-git-send-email-stefanha@redhat.com> <52451595.1000506@weilnetz.de> <20130927091107.GA9972@stefanha-thinkpad.redhat.com> <5245B70E.6050105@weilnetz.de> <20130930090627.GE16558@stefanha-thinkpad.redhat.com> <524A62DC.1070408@weilnetz.de> <20131001072950.GC3894@kerneis.info> <524AFC06.1060906@weilnetz.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <524AFC06.1060906@weilnetz.de> Subject: Re: [Qemu-devel] [PATCH] coroutine: add ./configure --disable-coroutine-pool List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil Cc: Kevin Wolf , Paolo Bonzini , Gabriel Kerneis , qemu-devel@nongnu.org, qemu-stable On Tue, Oct 01, 2013 at 06:44:54PM +0200, Stefan Weil wrote: > Am 01.10.2013 09:29, schrieb Gabriel Kerneis: > > On Tue, Oct 01, 2013 at 07:51:24AM +0200, Stefan Weil wrote: > >> $ wine i386-softmmu/qemu-system-i386 -L pc-bios -cdrom /var/tmp/mini.iso > >> -sdl # or -vnc :1 > >> > >> => Assertion in qemu-coroutine-lock.c:99. > > Could you please provide the backtrace for this? I am curious which of the uses > > of qemu_co_queue_restart_all() fails. I wonder if it is a bug in the > > implementation of qemu_in_coroutine() on your platform, or really a rare > > interleaving which exhibits a bug in the logic of coroutine functions. > > > > Here is a GDB protocol. Build environment: > > Windows 7 (64 bit) host > MinGW toolchain (not MinGW-w64 which I usually prefer) > ./configure && make > > $ gdb --args bin/ndebug/mingw32/i386-softmmu/qemu-system-i386 -L pc-bios > -cdrom mini.iso > GNU gdb (GDB) 7.5 > Copyright (C) 2012 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "i686-pc-mingw32". > For bug reporting instructions, please see: > ... > Reading symbols from > c:\home\stefan\src\qemu\qemu.org\qemu\bin\ndebug\mingw32\i386-softmmu\qemu-system-i386.exe...done. > (gdb) b abort > Breakpoint 1 at 0x6b0070 > (gdb) r > Starting program: > c:\home\stefan\src\qemu\qemu.org\qemu\bin\ndebug\mingw32\i386-softmmu\qemu-system-i386.exe > -L pc-bios -cdrom mini.iso > [New Thread 4120.0x19c4] > [New Thread 4120.0x1724] > [New Thread 4120.0x1a98] > [New Thread 4120.0x1854] > [New Thread 4120.0x1bf8] > VNC server running on `::1:5900' > Assertion failed: qemu_in_coroutine(), file > c:/home/stefan/src/qemu/qemu.org/qemu/qemu-coroutine-lock.c, line 99 > [Switching to Thread 4120.0x1a98] > > Breakpoint 1, 0x76118e76 in msvcrt!abort () > from C:\Windows\syswow64\msvcrt.dll > (gdb) i s > #0 0x76118e76 in msvcrt!abort () from C:\Windows\syswow64\msvcrt.dll > #1 0x7611680c in msvcrt!_assert () from C:\Windows\syswow64\msvcrt.dll > #2 0x00518f2d in qemu_co_queue_restart_all (queue=queue@entry=0x6d3fe90) > at c:/home/stefan/src/qemu/qemu.org/qemu/qemu-coroutine-lock.c:99 > #3 0x0040ee81 in tracked_request_end (req=0x6d3fe6c) > at c:/home/stefan/src/qemu/qemu.org/qemu/block.c:1963 > #4 bdrv_co_do_readv (bs=0x3057658, sector_num=, > nb_sectors=4, > qiov=0x733f9d0, flags=) > at c:/home/stefan/src/qemu/qemu.org/qemu/block.c:2675 > #5 0x0040ee52 in bdrv_co_do_readv (bs=0x3055c10, sector_num= out>, > nb_sectors=4, qiov=0x733f9d0, flags=) > at c:/home/stefan/src/qemu/qemu.org/qemu/block.c:2645 > #6 0x0040ffbc in bdrv_rw_co_entry (opaque=0x733f968) > at c:/home/stefan/src/qemu/qemu.org/qemu/block.c:2276 > #7 0x00441be8 in coroutine_trampoline (co_=0x3058958) > at c:/home/stefan/src/qemu/qemu.org/qemu/coroutine-win32.c:57 > #8 0x7549bfa2 in KERNEL32!GetQueuedCompletionStatus () > from C:\Windows\syswow64\kernel32.dll > #9 0x03058958 in ?? () > #10 0x7549bf5a in KERNEL32!GetQueuedCompletionStatus () > from C:\Windows\syswow64\kernel32.dll > #11 0x014feff0 in ?? () This is an interesting backtrace. The 'current' thread-local variable from coroutine-win32.c is NULL or doesn't have a caller assigned. Please post 'thread apply all bt' so we can identify the other threads. Stefan