https://bugs.winehq.org/show_bug.cgi?id=45167
Bug ID: 45167 Summary: Acronis Disk Director 12 installer fails: ITERATE_Actions Execution halted, action L"_USRCUSTACT_MsiFltSrvInstall_fltsrv_component" returned 1603 (setupapi lasterror leakage) Product: Wine Version: 3.7 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: setupapi Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
found while re-testing bug 40285
--- snip --- $ WINEDEBUG=+seh,+relay,+msi,+setupapi wine ./ADD12_trial_en-US.exe >>log.txt 2>&1 ... 0009:trace:msi:ACTION_PerformAction Performing action (L"_USRCUSTACT_MsiFltSrvInstall_fltsrv_component") ... 0009:trace:msi:ACTION_CustomAction Handling custom action L"_USRCUSTACT_MsiFltSrvInstall_fltsrv_component" (c01 L"_07ACC498A1CC6CE24B33317680A42CA8" L"MsiFltSrvInstall") ... 0009:trace:msi:HANDLE_CustomType1 Calling function L"MsiFltSrvInstall" from L"C:\users\focht\Temp\msi2409.tmp" ... 00d1:Call KERNEL32.CreateProcessW(009dfc24 L"C:\windows\system32\msiexec.exe",009df9a4 L"C:\windows\system32\msiexec.exe -Embedding {A121B25A-1BB4-4E7E-8C27-789D2A9666D5}",00000000,00000000,00000000,00000000,00000000,00000000,009dfe2c,009dfe70) ret=7e91e77d ... 00d3:Ret PE DLL (proc=0x10003420,module=0x10000000 L"msi2409.tmp",reason=PROCESS_ATTACH,res=(nil)) retval=1 00d3:Ret KERNEL32.LoadLibraryW() retval=10000000 ret=7e91e173 00d3:Call KERNEL32.GetProcAddress(10000000,0015be58 "MsiFltSrvInstall") ret=7e91e1f0 00d3:Ret KERNEL32.GetProcAddress() retval=100022b0 ret=7e91e1f0 ... 00d3:trace:msi:__wine_msi_call_dll_function calling "MsiFltSrvInstall" ... 00d5:Call KERNEL32.CreateFileW(00168190 L"\\?\C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.sys",c0000000,00000000,00000000,00000002,00000080,00000000) ret=10059a51 00d5:Ret KERNEL32.CreateFileW() retval=00000074 ret=10059a51 ... 00d5:Call msi.MsiRecordSetStringW(00000002,00000001,001646f0 L"MSI_TRACE(fltsrv): MsiFltSrvInstall: build number 2299") ret=10024c68 ... 00d5:Call KERNEL32.CreateFileW(00168480 L"\\?\C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.inf",c0000000,00000000,00000000,00000002,00000080,00000000) ret=10059a51 00d5:Ret KERNEL32.CreateFileW() retval=0000007c ret=10059a51 ... 00d5:Call setupapi.SetupOpenInfFileW(001680c0 L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.inf",00000000,00000002,00000000) ret=1001af9e ... 00d5:trace:setupapi:SetupOpenInfFileW L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.inf" -> 0x168158 00d5:Ret setupapi.SetupOpenInfFileW() retval=00168158 ret=1001af9e ... 00d5:Call msi.MsiRecordSetStringW(00000002,00000001,00168440 L"MSI_TRACE(fltsrv): defaultInstallSection=DefaultInstall") ret=10024c68 ... 00d5:Call setupapi.SetupFindFirstLineW(001681a0,001648a8 L"DefaultInstall",001638f0 L"CopyFiles",0045fb20) ret=1001affd 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"CopyFiles"): returning 0 00d5:Ret setupapi.SetupFindFirstLineW() retval=00000001 ret=1001affd 00d5:Call setupapi.SetupGetFieldCount(0045fb20) ret=10018f90 00d5:Ret setupapi.SetupGetFieldCount() retval=00000001 ret=10018f90 00d5:Call setupapi.SetupGetStringFieldW(0045fb20,00000001,0016c910,00001000,00000000) ret=10018fc2 00d5:trace:setupapi:SetupGetStringFieldW context 0x1681a0/0x1681a0/1/0 index 1 returning L"FltSrvDrivers" 00d5:Ret setupapi.SetupGetStringFieldW() retval=00000001 ret=10018fc2 ... 00d5:Call setupapi.SetupQueueCopySectionW(00164738,0016c210 L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\",001681a0,00000000,00168088 L"FltSrvDrivers",00000100) ret=1001b30d 00d5:trace:setupapi:SetupQueueCopySectionW hinf=0x1681a0/(nil) section=L"FltSrvDrivers" root=L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\" 00d5:trace:setupapi:SetupFindFirstLineW (0x1681a0,L"FltSrvDrivers",(null)): returning 5/0 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DestinationDirs",L"FltSrvDrivers"): returning 0 ... 00d5:trace:setupapi:SetupGetStringFieldW context 0x1681a0/0x1681a0/7/0 index 1 returning L"Acronis Storage Filter Management Driver Installation Disk" 00d5:trace:setupapi:SetupQueueCopyIndirectW root=L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\" path=(null) file=L"fltsrv.x86.sys" -> dir=L"C:\windows\system32\drivers" file=L"fltsrv.sys" descr=L"Acronis Storage Filter Management Driver Installation Disk" tag=(null) ... 00d5:Ret setupapi.SetupQueueCopySectionW() retval=00000001 ret=1001b30d ... 00d5:Call setupapi.SetupFindNextMatchLineW(0045fb20,001638f0 L"CopyFiles",0045fb20) ret=1001b061 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"CopyFiles"): not found 00d5:Ret setupapi.SetupFindNextMatchLineW() retval=00000000 ret=1001b061 00d5:Call KERNEL32.GetLastError() ret=1001b06b 00d5:Ret KERNEL32.GetLastError() retval=e0000102 ret=1001b06b ... 00d5:Call setupapi.SetupDefaultQueueCallbackW(0016bdd0,0000000b,0045fa80,00000000) ret=10019646 00d5:trace:setupapi:SetupDefaultQueueCallbackW start copy L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.sys" -> L"C:\windows\system32\drivers\fltsrv.sys" 00d5:Ret setupapi.SetupDefaultQueueCallbackW() retval=00000001 ret=10019646 00d5:trace:setupapi:SetupCommitFileQueueW copying file L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.sys" -> L"C:\windows\system32\drivers\fltsrv.sys" ... 00d5:trace:setupapi:do_file_copyW copy L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.sys" to L"C:\windows\system32\drivers\fltsrv.sys" style 0x100 00d5:err:setupapi:do_file_copyW Unsupported style(s) 0x100 00d5:Call KERNEL32.CopyFileW(0016b270 L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.sys",0016c210 L"C:\windows\system32\drivers\fltsrv.sys",00000000) ret=f7ac5e92 00d5:Ret KERNEL32.CopyFileW() retval=00000001 ret=f7ac5e92 00d5:trace:setupapi:do_file_copyW Did copy... rc was 1 00d5:Call setupapi.SetupDefaultQueueCallbackW(0016bdd0,0000000c,0045fa80,00000000) ret=10019646 00d5:trace:setupapi:SetupDefaultQueueCallbackW end copy L"C:\users\focht\Temp\AE6D8134-43FB-4C07-B3A1-87DA0CC08234\fltsrv.x86.sys" -> L"C:\windows\system32\drivers\fltsrv.sys" 00d5:Ret setupapi.SetupDefaultQueueCallbackW() retval=00000000 ret=10019646 00d5:Call setupapi.SetupDefaultQueueCallbackW(0016bdd0,00000004,00000000,00000000) ret=10019646 00d5:trace:setupapi:SetupDefaultQueueCallbackW end subqueue 0 00d5:Ret setupapi.SetupDefaultQueueCallbackW() retval=00000000 ret=10019646 00d5:Call setupapi.SetupDefaultQueueCallbackW(0016bdd0,00000002,00000001,00000000) ret=10019646 00d5:trace:setupapi:SetupDefaultQueueCallbackW end queue 00d5:Ret setupapi.SetupDefaultQueueCallbackW() retval=00000000 ret=10019646 ... 00d5:Ret setupapi.SetupCommitFileQueueW() retval=00000001 ret=100195ca 00d5:Call setupapi.SetupPromptReboot(00164738,00000000,00000001) ret=100195ea 00d5:fixme:setupapi:SetupPromptReboot 0x164738, (nil), 1: stub 00d5:Ret setupapi.SetupPromptReboot() retval=00000000 ret=100195ea ... 00d5:Ret setupapi.SetupCloseFileQueue() retval=00000001 ret=100194ff 00d5:Call setupapi.SetupInstallFromInfSectionW(00000000,001681a0,00168858 L"DefaultInstall",0000000e,80000002,00000000,00000000,00000000,00000000,00000000,00000000) ret=1001b28c 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"WinePreInstall"): not found 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"UpdateInis"): not found 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"UpdateIniFields"): not found 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"Ini2Reg"): not found 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"DelReg"): not found 00d5:trace:setupapi:SetupFindNextMatchLineW (0x1681a0,L"DefaultInstall",L"AddReg"): not found 00d5:Ret setupapi.SetupInstallFromInfSectionW() retval=00000001 ret=1001b28c 00d5:Call KERNEL32.GetLastError() ret=1001b29a 00d5:Ret KERNEL32.GetLastError() retval=e0000102 ret=1001b29a 00d5:Call KERNEL32.GetLastError() ret=10033590 00d5:Ret KERNEL32.GetLastError() retval=e0000102 ret=10033590 00d5:Call KERNEL32.GetLastError() ret=10033590 00d5:Ret KERNEL32.GetLastError() retval=e0000102 ret=10033590 00d5:Call KERNEL32.GetLastError() ret=10033590 00d5:Ret KERNEL32.GetLastError() retval=e0000102 ret=10033590 00d5:Call KERNEL32.GetLastError() ret=10033590 00d5:Ret KERNEL32.GetLastError() retval=e0000102 ret=10033590 ... 00d5:Call msi.MsiRecordSetStringW(00000002,00000001,00168440 L"MSI_TRACE(fltsrv): ProcessDirectivesFromSection failed: 3758096642") ret=10024c68 ... 00d5:Call msi.MsiRecordSetStringW(00000002,00000001,00168440 L"MSI_TRACE(fltsrv): Failed to install: status 3758096642.") ret=10024c68 ... --- snip ---
It seems there is some lasterror leaking in Wine's setupapi.
0xe0000102 -> ERROR_LINE_NOT_FOUND
This error is set due to previous parsing calls (ok) but never reset throughout various setupapi call sequences (external and internal). The app installer checks the lasterror even on API return success and reports failure.
I've reset the lasterror in 'SetupInstallFromInfSectionW()' on success to zero since the leaf function calls 'SetupFindNextMatchLineW()' will set it -> leakage. It helps the installer to get further and actually install the (kernel) filter service - only to run into next bug.
$ sha1sum ADD12_trial_en-US.exe 9c087d66c4e7e4ef22b30721d9ab519753a394b1 ADD12_trial_en-US.exe
$ du -sh ADD12_trial_en-US.exe 290M ADD12_trial_en-US.exe
$ wine --version wine-3.7-136-g8f46ac233e
Regards
https://bugs.winehq.org/show_bug.cgi?id=45167
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://download.acronis.com | |/ADD12_trial_en-US.exe Keywords| |download, Installer Summary|Acronis Disk Director 12 |Acronis Disk Director 12 |installer fails: |installer fails: action |ITERATE_Actions Execution |L"_USRCUSTACT_MsiFltSrvInst |halted, action |all_fltsrv_component" |L"_USRCUSTACT_MsiFltSrvInst |returned 1603 (setupapi |all_fltsrv_component" |lasterror leakage) |returned 1603 (setupapi | |lasterror leakage) |
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello again,
filling additional fields.
Source:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/setupapi/install.c#l1...
--- snip --- 1067 BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section, UINT flags, 1068 HKEY key_root, PCWSTR src_root, UINT copy_flags, 1069 PSP_FILE_CALLBACK_W callback, PVOID context, 1070 HDEVINFO devinfo, PSP_DEVINFO_DATA devinfo_data ) 1071 { 1072 BOOL ret; 1073 int i; 1074 1075 if (flags & SPINST_REGISTRY) 1076 { 1077 struct registry_callback_info info; 1078 1079 info.default_root = key_root; 1080 info.delete = FALSE; 1081 if (!iterate_section_fields( hinf, section, WinePreInstall, registry_callback, &info )) 1082 return FALSE; 1083 } 1084 if (flags & SPINST_FILES) ... 1180 if (flags & SPINST_PROFILEITEMS) 1181 { 1182 if (!iterate_section_fields( hinf, section, ProfileItems, profile_items_callback, NULL )) 1183 return FALSE; 1184 } 1185 if (flags & SPINST_COPYINF) 1186 { 1187 if (!iterate_section_fields( hinf, section, CopyINF, copy_inf_callback, NULL )) 1188 return FALSE; 1189 } 1190 1191 return TRUE; 1192 } --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=45167
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com Keywords| |patch
--- Comment #2 from Austin English austinenglish@gmail.com --- https://source.winehq.org/patches/data/145766
https://bugs.winehq.org/show_bug.cgi?id=45167
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=45167
--- Comment #3 from Gijs Vermeulen gijsvrm@gmail.com --- This should be fixed with: d45e6814d67c1f1a2eb6023f0fb5574d560fd9b8
(Can't test myself atm)
https://bugs.winehq.org/show_bug.cgi?id=45167
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |d45e6814d67c1f1a2eb6023f0fb | |5574d560fd9b8
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit https://source.winehq.org/git/wine.git/commitdiff/d45e6814d67c1f1a2eb6023f0f...
Thanks Austin
--- snip ---- $ WINEDEBUG=+seh,+relay,+msi,+setupapi wine ./ADD12_trial_en-US.exe >>log.txt 2>&1
$ sed -n -e 's/^.*MSI_TRACE(.*")).*/\1/p' log.txt (fltsrv): MsiFltSrvCheck: build number 2299") (fltsrv): CustomActionProcessor::Check()...") (fltsrv): Create UnstoppableDriver") (fltsrv): Service binary: fltsrv") (fltsrv): Subkey System\CurrentControlSet\Services\fltsrv has not been found") (fltsrv): Failed to read driver path 'fltsrv' from the registry: status 2") (fltsrv): Driver name=fltsrv version=2227 infFile=C:\users\focht\Temp\20E887C0-9D25-415D-9F05-BEAD5D3AFD57\fltsrv.x86.inf binPath=fltsrv") (fltsrv): force set PROP_ENABLE_COMMON_ERRORS") (snapman): MsiSnapmanCheck: build number 2787") (snapman): CustomActionProcessor::Check()...") (snapman): Create HybridDriver") (snapman): Warning: convert to multistring System\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}\UpperFilters with result 2") (snapman): Warning: convert to multistring System\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}\LowerFilters with result 2") (snapman): Service binary: snapman") (snapman): Subkey System\CurrentControlSet\Services\snapman has not been found") (snapman): Failed to open registry key: 2") (snapman): Failed to read driver path 'snapman' from the registry: status 2") (snapman): Driver name=snapman version=2556 infFile=C:\users\focht\Temp\5C04247B-B897-4B9C-A730-C0557D0DE6E0\snapman.x86.inf binPath=snapman") (snapman): Installer::ServiceInformation::Query") (snapman): Service snapman does not exist") (snapman): Subkey Software\Acronis\snapman has not been found") (snapman): Failed to open registry key: 2") (snapman): No installed driver found") (snapman): Warning: forced unstoppable logic due to version number (0 < 2420)") (snapman): Enable common errors=") (snapman): Installed old API file '' is not detected: status 3") (snapman): force set PROP_ENABLE_COMMON_ERRORS") (fltsrv): MsiFltSrvInstall: build number 2299") (fltsrv): CustomActionProcessor::Install()...") (fltsrv): Create UnstoppableDriver") (fltsrv): Service binary: fltsrv") (fltsrv): Subkey System\CurrentControlSet\Services\fltsrv has not been found") (fltsrv): Failed to read driver path 'fltsrv' from the registry: status 2") (fltsrv): Driver name=fltsrv version=2227 infFile=C:\users\focht\Temp\643188A1-FE67-4EC4-A7BE-E30A225E3694\fltsrv.x86.inf binPath=fltsrv") (fltsrv): Upgrade not found.") (fltsrv): Installer::ServiceInformation::Query") (fltsrv): Service fltsrv does not exist") (fltsrv): Install new driver") (fltsrv): Subkey System\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F} has not been found") (fltsrv): Subkey System\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F} has not been found") (fltsrv): Subkey Software\Acronis\fltsrv has not been found") (fltsrv): No obsolete version found to back up") (fltsrv): Driver::Install") (fltsrv): CryptCATAdminAddCatalog(C:\users\focht\Temp\643188A1-FE67-4EC4-A7BE-E30A225E3694\fltsrv.x86.cat) failed: 87") (fltsrv): Warning: install CAT file, error: 87 will be ignored") (fltsrv): StorageFilterControl2227::TakeApiControl: DriverApiClient Init failed with status 0x2") (fltsrv): Installer::ServiceInformation::Query") (fltsrv): Service fltsrv does not exist") (fltsrv): Driver::InstallService: new driver installation") (fltsrv): Install new unstoppable driver from C:\users\focht\Temp\643188A1-FE67-4EC4-A7BE-E30A225E3694\fltsrv.x86.inf") (fltsrv): Installer::InstallByDefault(C:\users\focht\Temp\643188A1-FE67-4EC4-A7BE-E30A225E3694\fltsrv.x86.inf)") (fltsrv): defaultInstallSection=DefaultInstall") (fltsrv): Installer::InfFile::InstallServicesFromSection: the operation for section DefaultInstall.Services was performed with status 0") (fltsrv): FlushFileBuffers") (fltsrv): Cancel postponed deletion of file '\??\C:\windows\system32\drivers\fltsrv.sys': status 0") (fltsrv): StorageFilterControl::GetRunningDriverBuildNumber: DriverApiClient Init failed with status 0x2") (fltsrv): Driver::Start") (fltsrv): StartWindowsService: failed to start service fltsrv, error: Error 0x1\n| line info: 0xb1fa94636fb34155\n| $module: fltsrv_msi_x86_vs_s_2299\n|\n| error 0xfff0: Service request timeout\n| line info: 0xbd28fdbd64edb8f4\n| code: 0x8007041d\n| $module: fltsrv_msi_x86_vs_s_2299") (fltsrv): Failed to install: status 1053.") (fltsrv): Action handler failed with status 1053.") (fltsrv): Operation failed with status 1053") --- snip ---
The 32-bit and 64-bit filter drivers fail when being started as kernel services but these are different problems.
Regards
https://bugs.winehq.org/show_bug.cgi?id=45167
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.14.
https://bugs.winehq.org/show_bug.cgi?id=45167
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |3.0.x
https://bugs.winehq.org/show_bug.cgi?id=45167
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|3.0.x |---
--- Comment #6 from Michael Stefaniuc mstefani@winehq.org --- Removing the 3.0.x milestone from bug fixes included in 3.0.4.
https://bugs.winehq.org/show_bug.cgi?id=45167
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://download.acronis.com |https://web.archive.org/web |/ADD12_trial_en-US.exe |/20180410030234if_/http://d | |l.acronis.com/u/ADD12_trial | |_en-US.exe