win32: git rev 59f971d crashes when accessing disk (coroutine issue)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Stefan Weil |
Bug Description
Host: XP SP3 / Vista SP2
configure commandline: ./configure --target-
gcc -v:
Using built-in specs.
Target: mingw32
Configured with: ../gcc-
Thread model: win32
gcc version 4.3.3 (4.3.3-tdm-1 mingw32)
gdb output:
C:\msys\
GNU gdb (GDB) 7.3
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
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 "mingw32".
For bug reporting instructions, please see:
<http://
Reading symbols from C:\msys\
done.
(gdb) r
Starting program: C:\msys\
[New Thread 2472.0x8e0]
[New Thread 2472.0xdc4]
[New Thread 2472.0x8f0]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 2472.0x8f0]
0x7c81071e in SwitchToFiber () from C:\WINDOWS\
(gdb) bt
#0 0x7c81071e in SwitchToFiber () from C:\WINDOWS\
#1 0x0044774c in qemu_coroutine_
action=
#2 0x004db18d in coroutine_swap (from=0x1e00, to=0xdcee9a8)
at qemu-coroutine.c:31
#3 0x00411618 in bdrv_rw_co (bs=<optimized out>, sector_
buf=0x2140000 "@", nb_sectors=1, is_write=false) at block.c:1335
#4 0x00486e39 in ide_sector_read (s=0x1bbdaa0)
at C:/msys/
#5 0x0054e71f in memory_
width=1, data=32) at C:/msys/
#6 0x005494e0 in ioport_writeb_thunk (opaque=0x1bbcf60, addr=7680, data=32)
at C:/msys/
#7 0x005496cf in ioport_write (data=<optimized out>,
address=
at C:/msys/
#8 cpu_outb (addr=2147340288, val=0 '\000')
at C:/msys/
#9 0x022c0397 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Changed in qemu: | |
status: | New → Confirmed |
assignee: | nobody → Stefan Weil (ubuntu-weilnetz) |
Same crash in wine:
user@gx110- lubuntu: ~/qemu/ i386-softmmu $ wine --version lubuntu: ~/qemu/ i386-softmmu $ winedbg qemu-system- i386.exe -L ..\\pc-bios -fda fda.img X11DRV_ LoadKeyboardLay out L"00000409", 0080: stub! X11DRV_ LoadKeyboardLay out L"00000409", 0001: stub!
wine-1.3.37
user@gx110-
WineDbg starting on pid 0024
0x7b85dedf: movl %edi,0x4(%esp)
Wine-dbg>cont
fixme:keyboard:
fixme:keyboard:
Unhandled exception: page fault on write access to 0x00000004 in 32-bit code (0x7b83ba1e).
Wine-dbg>bt all
(...)
Backtracing for thread 000d in process 0024 (Z:\home\ user\qemu\ i386-softmmu\ qemu-system- i386.exe) : func_wrapper+ 0xb() in ntdll (0x0dd1ea58) func+0x7c( ) in ntdll (0x0dd1eb28) on+0x21( ) in ntdll (0x0dd1eb48)
Backtrace:
=>0 0x7e06f832 GLIBC_2+0x832() in ld-linux.so.2 (0x0dd1e9b8)
1 0x68621611 in winmm (+0x21610) (0x0dd1ea48)
2 0x7bc70ed0 call_thread_
3 0x7bc7110d call_thread_
4 0x7bc70eae RtlRaiseExcepti
5 0x7bc7acd5 in ntdll (+0x6acd4) (0x0dd1f398)
6 0x6814696e start_thread+0xbd() in libpthread.so.0 (0x0dd1f498)
Backtracing for thread 0029 in process 0024 (Z:\home\ user\qemu\ i386-softmmu\ qemu-system- i386.exe) : 0x1e() in kernel32 (0x04dde198) switch+ 0x37(from_ =0x14730c, to_=0x16d430, action= COROUTINE_ YIELD) [/home/ user/qemu/ coroutine- win32.c: 48] in qemu-system-i386 (0x04dde1d8) swap+0x27( from=(nil) , to=0x16d430) [/home/ user/qemu/ qemu-coroutine. c:31] in qemu-system-i386 (0x04dde208) co+0x81( bs=<is not available>, sector_ num=0x7ffd00000 0000000, buf="µ", nb_sectors=0x1, is_write=false) [/home/ user/qemu/ block.c: 1335] in qemu-system-i386 (0x04dde268) transfer_ handler+ 0x1f3(opaque= 0x1dd6d0, nchan=0x2, dma_pos=0, dma_len=0x200) [/home/ user/qemu/ hw/fdc. c:1162] in qemu-system-i386 (0x04dde4f8) user/qemu/ hw/dma. c:348] in qemu-system-i386 (0x04dde548) start_transfer+ 0x2f5(fdctrl= 0x1dd6d0, direction=0x1) [/home/ user/qemu/ hw/fdc. c:1093] in qemu-system-i386 (0x04dde5c8) region_ iorange_ write+0x9c( iorange= 0x1df790, offset=0x4, width=0x1, data=0xff) [/home/ user/qemu/ memory. c:431] in qemu-system-i386 (0x04dde638) writeb_ thunk+0x46( opaque= 0x1df790, addr=0x3f5, data=0xff) [/home/ user/qemu/ ioport. c:211] in qemu-system-i386 (0x04dde678) write+0x37( index=< is not available>, address=0x7ffd0000, data=0x4ddea70) [/home/ user/qemu/ ioport. c:82] in qemu-system-i386 (0x04dde6a8)
Backtrace:
=>0 0x7b83ba1e SwitchToFiber+
1 0x0044e368 qemu_coroutine_
2 0x004f4038 coroutine_
3 0x00413c92 bdrv_rw_
4 0x004884e4 fdctrl_
5 0x0047f9e1 DMA_run+0xd0() [/home/
6 0x00487286 fdctrl_
7 0x0056b86d memory_
8 0x005666f7 ioport_
9 0x00566408 ioport_
10 0x01854496 (0x0015aab0)
Backtracing for thread 0025 in process 0024 (Z:\home\ user\qemu\ i386-softmmu\ qemu-system- i386.exe) : leObjects+ 0x54() in ntdll (0x015bf5c8) ObjectsEx+ 0xee() in kernel32 (0x015bf718) Objects+ 0x39() in kernel32 (0x015bf748) wait+0x5be( nonblocking= 0) [/home/ user/qemu/ main-loop. c:387] in qemu-system-i386 (0x015bfac8)
Backtrace:
=>0 0x7e06f830 GLIBC_2+0x830() in ld-linux.so.2 (0x015bf368)
1 0x7bc77563 in ntdll (+0x67562) (0x015bf598)
2 0x7bc77835 NtWaitForMultip
3 0x7b86f89f WaitForMultiple
4 0x7b86f91a WaitForMultiple
5 0x004d4c6f main_loop_
6 0x00...