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