AndreRH / hangover

Hangover runs simple Win32 applications on arm64 Linux
GNU Lesser General Public License v2.1
1.24k stars 91 forks source link

notepad.exe (x86) crashes at startup. #104

Closed simon-i1-h closed 3 years ago

simon-i1-h commented 3 years ago

System Details

building and running: Linux / x86_64

Platforms:

QEMU settings:

$ qemu-system-x86_64 -M q35 -cpu qemu64 -enable-kvm -m 8G -smp 4 \
    -drive file="$OSNAME".qcow2,format=qcow2,if=virtio \
    -net nic,model=virtio -net user,smb=/home/iys/build/hangover-amd64 \
    -vga virtio -display gtk,grab-on-hover=on,gl=on

Problems Description

commit: 0864abfb45672440b6746919d776738948f720a5

notepad.exe (x86) crashes at startup.

$ HANGOVER_DIR=/home/iys/build/hangover-amd64/hangover
$ cd $HANGOVER_DIR
$ NOTESTS=1 make -j1
$ WINEPREFIX=$HANGOVER_DIR/dotwine32 ./build/wine-host/loader/wine64 \
    ./build/qemu/x86_64-windows-user/qemu-x86_64.exe.so \
    ./build/wine-guest32/programs/notepad/notepad.exe

I got the following messages.

wine: created the configuration directory '/home/iys/build/hangover-amd64/hangover/dotwine32'
0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0048:err:ole:get_local_server_stream Failed: 80004002
0050:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0050:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0050:err:ole:get_local_server_stream Failed: 80004002
0040:fixme:winspool:AddPrinterW DocumentPropertiesW on printer L"TS3100" fails
Could not find Wine Gecko. HTML rendering will be disabled.
wine: configuration in L"/home/iys/build/hangover-amd64/hangover/dotwine32" has been updated.
0024:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
wine: Unhandled page fault on read access to 0000000000000013 at address 00007F852194BAE6 (thread 0024), starting debugger...
Unhandled exception: page fault on read access to 0x00000013 in 64-bit code (0x00007f852194bae6).
Register dump:
 rip:00007f852194bae6 rsp:000000000021f570 rbp:0000000000010ad8 eflags:00010202 (  R- --  I   - - - )
 rax:000000007f01a2a8 rbx:00007f8521b89c00 rcx:00007f8521a5c160 rdx:0000000000000000
 rsi:0000000000000000 rdi:0000000000000003  r8:0000000000008000  r9:00007f852264e4b0 r10:00007ffffe7e0000
 r11:0000000000010138 r12:0000000000000003 r13:0000000000000000 r14:0000000000000001 r15:00007f8521a79b60
Stack dump:
0x000000000021f570:  00007f8521a5c100 0000000000000001
0x000000000021f580:  00007f8521a79b60 00007f8522a2ccac
0x000000000021f590:  000000000021f5a0 0000000000010e40
0x000000000021f5a0:  00007f8521a5c100 00007f85218a5e76
0x000000000021f5b0:  000000000021f610 0000000000000000
0x000000000021f5c0:  0000000000000000 0000000000000000
0x000000000021f5d0:  0000000000010e40 0000000000000036
0x000000000021f5e0:  000000007bc00000 0000000000000000
0x000000000021f5f0:  0000000000000000 0000020800000000
0x000000000021f600:  0000000000000000 0000000000400000
0x000000000021f610:  0000000000056000 0000000000010690
0x000000000021f620:  0000000000000024 0000000000000000
Backtrace:
=>0 0x00007f852194bae6 (0x0000000000010ad8)
0x00007f852194bae6: movq        0x0000000000000010(%rdi),%rcx
Modules:
Module  Address                                 Debug info      Name (45 modules)
PE              7b000000-        7b320000       Deferred        kernelbase
PE              7b610000-        7b7cb000       Deferred        kernel32
PE              7bc00000-        7bef6000       Deferred        ntdll
PE          7f85108c0000-    7f85108e9000       Deferred        xinput1_3
PE          7f8510900000-    7f8510927000       Deferred        wsock32
PE          7f8510e30000-    7f8510e3b000       Deferred        winspool
PE          7f8510fc0000-    7f8511022000       Deferred        msacm32
PE          7f8511030000-    7f85111a3000       Deferred        winmm
PE          7f85111d0000-    7f8511216000       Deferred        shcore
PE          7f8511220000-    7f8511347000       Deferred        shlwapi
PE          7f8511350000-    7f85113c9000       Deferred        propsys
PE          7f8511400000-    7f8511406000       Deferred        windowscodecs
PE          7f8511760000-    7f8511763000       Deferred        kerberos
PE          7f8511780000-    7f8511784000       Deferred        dnsapi
PE          7f85117b0000-    7f85117b4000       Deferred        ws2_32
PE          7f85117f0000-    7f85117f3000       Deferred        netapi32
PE          7f8511830000-    7f8511833000       Deferred        secur32
PE          7f8511ff0000-    7f85120ca000       Deferred        usp10
PE          7f85120d0000-    7f8512313000       Deferred        riched20
PE          7f8512620000-    7f8512a23000       Deferred        oleaut32
PE          7f8512ad0000-    7f8512ad4000       Deferred        iphlpapi
PE          7f8512b70000-    7f8512b74000       Deferred        dxgi
PE          7f8513050000-    7f8513054000       Deferred        winex11
PE          7f8513150000-    7f8513154000       Deferred        opengl32
PE          7f8513340000-    7f8513344000       Deferred        wined3d
PE          7f8513560000-    7f85135a4000       Deferred        crypt32
PE          7f8513c90000-    7f8513c94000       Deferred        bcrypt
PE          7f8520540000-    7f8520547000       Deferred        gdi32
PE          7f8520710000-    7f8520714000       Deferred        ucrtbase
PE          7f8520820000-    7f8520824000       Deferred        advapi32
PE          7f85208b0000-    7f8520998000       Deferred        user32
PE          7f85218a0000-    7f85218f6000       Deferred        notepad
PE          7ffffe110000-    7ffffe2c9000       Deferred        setupapi
PE          7ffffe2d0000-    7ffffe36d000       Deferred        sechost
PE          7ffffe370000-    7ffffe592000       Deferred        rpcrt4
PE          7ffffe5a0000-    7ffffe5bc000       Deferred        version
PE          7ffffe7e0000-    7ffffe829000       Deferred        imm32
PE          7ffffe830000-    7ffffe89d000       Deferred        advpack
PE          7ffffe8a0000-    7ffffee01000       Deferred        ole32
PE          7ffffee10000-    7ffffeeaf000       Deferred        combase
PE          7ffffeeb0000-    7ffffef0f000       Deferred        cabinet
PE          7ffffef10000-    7fffff093000       Deferred        d3d9
PE          7fffff0e0000-    7fffff34f000       Deferred        ddraw
PE          7fffff350000-    7fffff4df000       Deferred        dsound
PE          7fffff500000-    7fffff583000       Deferred        mmdevapi
Threads:
process  tid      prio (all id:s are in hex)
00000020 (D) Z:\home\iys\build\hangover-amd64\hangover\build\wine-guest32\programs\notepad\notepad.exe
        00000024    0 <==
00000030 services.exe
        00000034    0
        00000038    0
        00000074    0
        00000080    0
        00000084    0
        000000ac    0
00000044 explorer.exe
        00000048    0
        00000054    0
00000078 winedevice.exe
        0000007c    0
        00000088    0
        0000008c    0
        00000090    0
000000a4 winedevice.exe
        000000a8    0
        000000b0    0
        000000b4    0
        000000b8    0
        000000bc    0
        000000c8    0
System information:
    Wine build: wine-5.15-7-g7590db8bb44
    Platform: x86_64
    Version: Windows 7
    Host system: Linux
    Host version: 5.4.0-62-generic

Is this the expected behavior?


However, notepad.exe (x64) works fine.

$ WINEPREFIX=$HANGOVER_DIR/dotwine64 ./build/wine-host/loader/wine64 \
    ./build/qemu/x86_64-windows-user/qemu-x86_64.exe.so \
    ./build/wine-guest/programs/notepad/notepad.exe

I got the following messages.

wine: created the configuration directory '/home/iys/build/hangover-amd64/hangover/dotwine64'
0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0048:err:ole:get_local_server_stream Failed: 80004002
0040:fixme:winspool:AddPrinterW DocumentPropertiesW on printer L"TS3100" fails
Could not find Wine Gecko. HTML rendering will be disabled.
wine: configuration in L"/home/iys/build/hangover-amd64/hangover/dotwine64" has been updated.
0024:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0024:fixme:qemu_ntdll:qemu_RtlAddVectoredExceptionHandler Unverified!
stefand commented 3 years ago

No, this smells like a bug. I can't say from the log though what is wrong

simon-i1-h commented 3 years ago

I updated the list of platforms. The problem seems to occur on a slightly older OS.

simon-i1-h commented 3 years ago

As of https://github.com/AndreRH/hangover/commit/672728c4671098762d2ddce651042a74864aa891, this problem no longer occurs (maybe by https://github.com/AndreRH/hangover/commit/6b5296908be343cdb5145645384ab6be0be09f56).