http://bugs.winehq.org/show_bug.cgi?id=32588
Bug #: 32588 Summary: Macrium Reflect: Error at the end of installation Product: Wine Version: 1.5.20 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: lukasz.wojnilowicz@gmail.com Classification: Unclassified
Created attachment 42999 --> http://bugs.winehq.org/attachment.cgi?id=42999 WINEDEBUG=+relay,+msi,+seh,+tid on wine-1.5.20-57-gdabde6a last 1000000 lines
Steps to reproduce: 1) remove ~/.wine 2) wine reflect_setup_free.exe 3) Next->Next->Next (default installation) 4) application starts installing
Behaviour: Wine error at the end.
Expected behaviour: No Wine error at the end.
Terminal output: fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS fixme:ntdll:server_ioctl_file Unsupported ioctl 560000 (device=56 access=0 func=0 method=0) fixme:ntdll:server_ioctl_file Unsupported ioctl 560000 (device=56 access=0 func=0 method=0) fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0) fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0) fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0) fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0) fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0) fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0) wine: Unhandled exception 0xc000000d in thread 3e at address 0x10056141 (thread 003e), starting debugger...
http://bugs.winehq.org/show_bug.cgi?id=32588
NSLW lukasz.wojnilowicz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer URL| |http://updates.macrium.com/ | |reflect/v5.0/v5.1.5496/refl | |ect_setup_free.exe
http://bugs.winehq.org/show_bug.cgi?id=32588
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|msi |-unknown
http://bugs.winehq.org/show_bug.cgi?id=32588
--- Comment #1 from NSLW lukasz.wojnilowicz@gmail.com 2013-08-10 03:00:41 CDT --- Still issue in Wine 1.7
https://bugs.winehq.org/show_bug.cgi?id=32588
Frédéric Delanoy frederic.delanoy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |frederic.delanoy@gmail.com Summary|Macrium Reflect: Error at |Macrium Reflect: Crash at |the end of installation |the end of installation Ever confirmed|0 |1
--- Comment #2 from Frédéric Delanoy frederic.delanoy@gmail.com --- Still an issue 1.7.53
Crash in msiexec.exe (crash dialog doesn't show anything)
https://bugs.winehq.org/show_bug.cgi?id=32588
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #3 from super_man@post.com --- The same 1.7.54 and wine-staging 1.7.54
https://bugs.winehq.org/show_bug.cgi?id=32588
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
https://bugs.winehq.org/show_bug.cgi?id=32588
--- Comment #4 from super_man@post.com --- Still crashing 1.8.rc3
https://bugs.winehq.org/show_bug.cgi?id=32588
--- Comment #5 from super_man@post.com --- Crashing both wine 1.9.9 and staging 1.9.8
https://bugs.winehq.org/show_bug.cgi?id=32588
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #6 from winetest@luukku.com --- (In reply to super_man from comment #5)
Crashing both wine 1.9.9 and staging 1.9.8
The installer seems to complete with no issues new default windows 7 mode, but with fresh prefix and windows set to xp it crashes.
wine 2.5-git.
https://bugs.winehq.org/show_bug.cgi?id=32588
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Macrium Reflect: Crash at |Macrium Reflect v5.1 |the end of installation |installer crashes with | |WinVer set to 'Windows XP' URL|http://updates.macrium.com/ |https://web.archive.org/web |reflect/v5.0/v5.1.5496/refl |/20191215153316/http://upda |ect_setup_free.exe |tes.macrium.com/reflect/v5. | |0/v5.1.5496/reflect_setup_f | |ree.exe
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. The installer takes a different (legacy) code path on Windows < Vista, hence the crash.
--- snip --- $ WINEDEBUG=+seh,+relay,+msi,+server wine ./reflect_setup_free.exe >>log.txt 2>&1 ... 002b:trace:msi:HANDLE_CustomType1 Calling function L"GetPaths" from L"C:\users\focht\Temp\msi338f.tmp" ... 002b:Call KERNEL32.CreateProcessW(0063f1d2 L"C:\windows\system32\msiexec.exe",0063f3da L"C:\windows\system32\msiexec.exe -Embedding 42",00000000,00000000,00000000,00000000,00000000,00000000,0063f18c,0063f14c) ret=00670431 ... 002b:Ret KERNEL32.CreateProcessW() retval=00000001 ret=00670431 ... 002b:trace:msi:HANDLE_CustomType1 Calling function L"UninstallBootMenu" from L"C:\users\focht\Temp\msi338f.tmp" ... 002b:Call KERNEL32.CreateThread(00000000,00000000,00670630,00e41860,00000000,00000000) ret=006715ff ... 002b:Ret KERNEL32.CreateThread() retval=000000f8 ret=006715ff ... 004a: init_thread( unix_pid=13371, unix_tid=13400, debug_level=1, teb=7ffd0000, entry=00401870, reply_fd=14, wait_fd=16, cpu=x86 ) 004a: init_thread() = 0 { pid=002d, tid=004a, server_start=1d5b35db9de5dd6 (-24.3958530), info_size=0, version=595, all_cpus=00000001, suspend=0 } ... 004a:Ret PE DLL (proc=0x10059a78,module=0x10000000 L"msi338f.tmp",reason=PROCESS_ATTACH,res=(nil)) retval=1 ... 004a:Call KERNEL32.GetVersionExW(011df674) ret=1000681b 004a:Ret KERNEL32.GetVersionExW() retval=00000001 ret=1000681b ... 004a:Call KERNEL32.CreateProcessW(00000000,011f1330 L""c:\boot\macrium\boot\bcdedit.exe" /enum all",00000000,00000000,00000001,04000000,00000000,00000000,011df7cc,011df7bc) ret=1000349b ... 004a:Call ntdll.RtlGetExePath(00da0e60 L"c:\boot\macrium\boot\bcdedit.exe",011df19c) ret=7127e0dd 004a:Ret ntdll.RtlGetExePath() retval=00000000 ret=7127e0dd ... 004a:Call ntdll.RtlDoesFileExists_U(00da0e60 L"c:\boot\macrium\boot\bcdedit.exe") ret=7125638c 004a:Ret ntdll.RtlDoesFileExists_U() retval=00000000 ret=7125638c ... 004a:Ret KERNEL32.CreateProcessW() retval=00000000 ret=1000349b ... 004a:Call KERNEL32.GetLastError() ret=1006042a 004a:Ret KERNEL32.GetLastError() retval=00000002 ret=1006042a ... 004a:Call KERNEL32.IsDebuggerPresent() ret=100560c5 004a:Ret KERNEL32.IsDebuggerPresent() retval=00000000 ret=100560c5 004a:Call KERNEL32.SetUnhandledExceptionFilter(00000000) ret=100560cf 004a:Ret KERNEL32.SetUnhandledExceptionFilter() retval=00407400 ret=100560cf 004a:Call KERNEL32.UnhandledExceptionFilter(011dd220) ret=100560d9 ... wine: Unhandled exception 0xc000000d in thread 4a at address 10056141 (thread 004a), starting debugger... --- snip ---
I was first a bit fooled by the failing call to 'bcdedit' tool - one of the last Win32 API calls before EXCEPTION_INVALID_CRT_PARAMETER exception.
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdedi...
--- quote --- BCDEdit is included in the %WINDIR%\System32 folder. --- quote ---
https://neosmart.net/wiki/bcdedit/
--- quote -- BCDEdit on Windows XP
Windows XP doesn’t have a bcdedit.exe utility available, but the bootcfg.exe utility instead. Bootcfg.exe is part of the Windows XP’s Recovery Console.
To read about bootcfg, follow our guide: Bootcfg – Guide for Windows XP. --- quote --
Turns out it's not the red herring here. The failure is due to missing initialization of internal installer data. Earlier in the installer process (same custom action 'UninstallBootMenu'), various information is gathered from querying the disk(s) for device descriptor properties and other data, such as partition layout/Windows boot manager information.
--- snip --- ... 004a:Call KERNEL32.CreateFileW(011de3f8 L"\\.\PHYSICALDRIVE0",80000000,00000003,00000000,00000003,00000000,00000000) ret=100104ad ... 004a:Ret KERNEL32.CreateFileW() retval=000000f8 ret=100104ad ... 004a:Call KERNEL32.DeviceIoControl(000000f8,000700a0,00000000,00000000,011d0230,00000028,011d01f4,00000000) ret=1001050d ... 0025:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled ... 004a: get_async_result() = 0 { size=40, out_data={10,27,00,00,00,00,00,00,0c,00,00,00,ff,00,00,00,3f,00,00,00,00,02,00,00,00,20,a6,26,13,00,00,00,00,7b,ce,7b,27,79,ce,7b} } ... 004a:Ret KERNEL32.DeviceIoControl() retval=00000001 ret=1001050d ... 004a:Call KERNEL32.DeviceIoControl(000000f8,002d1400,011d025c,0000000c,011d0268,00002000,011d01ec,00000000) ret=1001059c ... 0025:fixme:mountmgr:query_property Faking StorageDeviceProperty data ... 004a: get_async_result() = 0 { size=40, out_data={28,00,00,00,28,00,00,00,07,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00} } ... 004a:Ret KERNEL32.DeviceIoControl() retval=00000001 ret=1001059c ... 004a:Call KERNEL32.CloseHandle(000000f8) ret=10010734 004a:Ret KERNEL32.CloseHandle() retval=00000001 ret=10010734 ... 004a:Call KERNEL32.CreateFileW(011de3f8 L"\\.\PHYSICALDRIVE0",80000000,00000003,011d2144,00000003,00000080,00000000) ret=10058da9 ... 004a:Ret KERNEL32.CreateFileW() retval=000000f8 ret=10058da9 ... 004a:Call KERNEL32.GetFileType(000000f8) ret=10058e27 ... 004a:Call ntdll.NtQueryVolumeInformationFile(000000f8,011d20e8,011d20e0,00000008,00000004) ret=71257c7e 004a: get_handle_fd( handle=00f8 ) 004a: get_handle_fd() = BAD_DEVICE_TYPE { type=0, cacheable=1, access=00000000, options=00000000 } 004a: get_volume_info( handle=00f8, info_class=00000004 ) 004a: get_volume_info() = OBJECT_TYPE_MISMATCH { data={} } 0025: set_irp_result( handle=0148, status=c0000010, size=0, data={} ) 004a:Ret ntdll.NtQueryVolumeInformationFile() retval=c0000024 ret=71257c7e 0025: set_irp_result() = 0 004a:Call ntdll.RtlNtStatusToDosError(c0000024) ret=71257cd9 004a:Ret ntdll.RtlNtStatusToDosError() retval=00000006 ret=71257cd9 ... 004a:Ret KERNEL32.GetFileType() retval=00000000 ret=10058e27 ... 004a:Call KERNEL32.GetLastError() ret=1006042a 004a:Ret KERNEL32.GetLastError() retval=00000006 ret=1006042a ... --- snip ---
Since 'GetFileType' fails for '\\.\PHYSICALDRIVE0' it doesn't bother with further queries. It likely expects success and 'FILE_TYPE_DISK' here.
$ sha1sum reflect_setup_free.exe 54937b86e5be6d3d45fb4022aa75a97344eab479 reflect_setup_free.exe
$ du -sh reflect_setup_free.exe 33M reflect_setup_free.exe
$ wine --version wine-5.0-rc1
Regards