Am 26.09.2013 21:05, schrieb Stefan Weil: > Am 26.09.2013 13:23, schrieb Vikas Desai: >> Hi, >> >> After some further testing I found that even the 32 bit binaries from >> Stefan fail with the same error. I tried the 32 bit binaries from by >> Eric Lassauge for version 1.6 and they work well. I have tried both 32 >> and 64 bit binaries from Stefan on 2 different environments, both >> failing with same errors. >> >> When I just run the binaries with no disk image or any other options, >> I get a proper window with the BIOS going through all drives looking >> for a bootable device. Only when I have a valid executable image I get >> the error. Also, in case of the test linux binary I get a kernel panic >> on linux but qemu does not crash. >> >> What should I do further to debug this? >> >> Hi Stefan, >> >> Could you share what tools you use for the build? Any hints on what >> more could I try? >> >> Thanks, >> Vikas > Hi Vikas, > > I also get the corouting assertion when I start my precompiled QEMU > binary with an ISO image (Debian i386 netinstall). > The error can be reproduced with Wine on Linux, too. > > There is no error when QEMU was configured with --enable-debug (which > disables optimisation), > nor is there an error when I just run the BIOS code (no disk, no cdrom). > This explains why I did not > notice the regression for Windows earlier. > > So we have to find the first version which shows that regression, either > by testing older installers > or by running git bisect. > > Cheers, > Stefan
Summary: Latest qemu-system-i386 for Windows fails with an assertion (qemu-coroutine-lock.c:99) if something more complex than the BIOS is executed. It works when it is configured with --enable-debug. This behaviour is identical for 32 bit and 64 bit executables and can also be reproduced using Wine. Older versions also fail, but with SIGSEGV instead of an assertion. This is the result of git bisect: 402397843e20e35d6cb7c80837c7cfdb19ede591 is the first bad commit commit 402397843e20e35d6cb7c80837c7cfdb19ede591 Author: Paolo Bonzini <pbonz...@redhat.com> Date: Tue Feb 19 11:59:09 2013 +0100 coroutine: move pooling to common code The coroutine pool code is duplicated between the ucontext and sigaltstack backends, and absent from the win32 backend. But the code can be shared easily by moving it to qemu-coroutine.c. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> When I configure latest QEMU with --disable-coroutine-pool, it works! I'll build new installers with this option until there is a bug fix available. Thanks for your bug report. Stefan