From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42577) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rxyc5-0004ZP-Oh for qemu-devel@nongnu.org; Thu, 16 Feb 2012 05:31:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rxyc0-0005ps-5Y for qemu-devel@nongnu.org; Thu, 16 Feb 2012 05:30:57 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34494) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rxybz-0005po-Q0 for qemu-devel@nongnu.org; Thu, 16 Feb 2012 05:30:52 -0500 Message-ID: <4F3CDBA8.1090407@redhat.com> Date: Thu, 16 Feb 2012 11:34:16 +0100 From: Kevin Wolf MIME-Version: 1.0 References: <20120215015959.27405.46578.malonedeb@soybean.canonical.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Bug 932487] [NEW] win32: git rev 59f971d crashes when accessing disk (coroutine issue) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Bug 932487 <932487@bugs.launchpad.net> Cc: qemu-devel@nongnu.org Am 16.02.2012 10:34, schrieb Stefan Hajnoczi: > This is interesting because the code is a straightforward usage of > coroutines: > > co = qemu_coroutine_create(bdrv_rw_co_entry); > qemu_coroutine_enter(co, &rwco); <--- boom > > Please make test-coroutine and try ./test-coroutine. That performs > some sanity checks. > > I haven't had time to look in depth yet but perhaps this worked in the > past and you could bisect it to find the commit that broke it? Remember that I saw a similar crash a while ago? It was definitely a NULL pointer access somewhere inside SwitchToFiber. I can't remember exactly what came out of it, but I think you and Paolo couldn't reproduce it and I ran out of time for debugging win32 stuff. If I was to debug this, the first thing I would try is that I would dump co->fiber (or actually I seem to remember it was some data structure that is only pointed to by a field in co->fiber) immediately after the coroutine is created (I think it was still okay then) and set a watchpoint on it. Kevin