http://bugs.winehq.org/show_bug.cgi?id=34989
Bug #: 34989 Summary: SourceTree can't install Product: Wine Version: 1.7.7 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: litimetal@gmail.com Classification: Unclassified
Created attachment 46625 --> http://bugs.winehq.org/attachment.cgi?id=46625 terminal output.txt
0. download from http://downloads.atlassian.com/software/sourcetree/windows/SourceTreeSetup_1... 1. wine SourceTreeSetup_1.3.2.exe 2. click 'Next', 'Install' 3. the installer hangs, so I had to kill it
http://bugs.winehq.org/show_bug.cgi?id=34989
lizhenbo litimetal@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer URL| |http://downloads.atlassian. | |com/software/sourcetree/win | |dows/SourceTreeSetup_1.3.2. | |exe
http://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #1 from lizhenbo litimetal@gmail.com 2013-11-24 06:02:56 CST --- Created attachment 46626 --> http://bugs.winehq.org/attachment.cgi?id=46626 +tid,+shell terminal output.txt
In terminal output, I found -- fixme:shell:SHGetKnownFolderPath flags 0x00004400 not supported -- So I guess this is a shell32 bug
http://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |msi Summary|SourceTree can't install |Atlassian SourceTree | |(Mercurial and Git client) | |v1.3.2 installer hangs | |(deferred type 1 custom | |action executed before | |regular type 1 custom | |action) Ever Confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net 2013-11-24 15:23:08 CST --- Hello folks,
confirming.
--- quote --- In terminal output, I found -- fixme:shell:SHGetKnownFolderPath flags 0x00004400 not supported -- So I guess this is a shell32 bug --- quote ---
FIXME's are not necessarily bugs.
The installer creates a child process and some bidirectional (message mode) pipes which both processes use to communicate with each other.
At the point of the "hang" the client is blocking on a pipe read in some msi custom action.
--- snip --- Wine-dbg>info process pid threads executable (all id:s are in hex)
00000023 4 'SourceTreeSetup_1.3.2.exe'
00000032 2 _ 'SourceTreeSetup_1.3.2.exe' 00000021 1 'explorer.exe' 0000000e 5 'services.exe' 0000001a 3 _ 'plugplay.exe' 00000012 4 _ 'winedevice.exe'
Wine-dbg>info thread process tid prio (all id:s are in hex) ... 00000023 (D) Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe 0000002b 0 0000002a 0 00000025 0 00000024 0 00000032 (D) Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe 00000039 0 00000033 0 <== --- snip ---
Server/parent creating two pipes:
--- snip --- 002a:Call KERNEL32.CreateNamedPipeW(0014db28 L"\\.\pipe\ToServerAdvinst_Estimate_Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe",00000003,00000006,000000ff,00007f90,00007f90,00001388,00000000) ret=00480d7c 002a:Ret KERNEL32.CreateNamedPipeW() retval=0000009c ret=00480d7c ... 002a:Call KERNEL32.CreateNamedPipeW(0014f020 L"\\.\pipe\ToServerAdvinst_Extract_Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe",00000003,00000006,000000ff,00007f90,00007f90,00001388,00000000) ret=00480d7c 002a:Ret KERNEL32.CreateNamedPipeW() retval=000000a0 ret=00480d7c ... --- snip ---
Server thread tid 0x2a waiting for client connect to "\\.\pipe\ToServerAdvinst_Estimate_Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe":
--- snip --- 002a:Call KERNEL32.ConnectNamedPipe(0000009c,00000000) ret=00480f8a --- snip ---
Another pipe (served from tid 0x2b) for child process which is created a short time later:
--- snip --- 002b:Call KERNEL32.CreateNamedPipeW(005bf580 L"\\.\pipe\ToServer35",00000003,00000006,000000ff,00000400,00000400,00001388,00000000) ret=00498839 002b:Ret KERNEL32.CreateNamedPipeW() retval=000000f8 ret=00498839 ... 002b:Call KERNEL32.CreateProcessW(005bf5f8 L"Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe",005c0cd0 L"Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe /i "C:\users\Public\Application Data\Atlassian\SourceTree 1.3.2\install\SourceTreeSetup_1.3.2.msi" EXECUTEACTION="INSTALL" SECONDSEQUENCE="1" CLIENTPROCESSID="35" ADDLOCAL="MainFeature" ACTION="INSTALL" CLIENTUILEVEL="0" ALLUS"...,00000000,00000000,00000000,00000000,00000000,00000000,00bade0c,00bae104) ret=004a086a ... 0032:Call KERNEL32.__wine_kernel_init() ret=7bc599cc 002b:Ret KERNEL32.CreateProcessW() retval=00000001 ret=004a086a ... 002b:Call KERNEL32.ConnectNamedPipe(000000f8,00000000) ret=00498a35 ... --- snip ---
(working) sequence of client<->server pipe "\\.\pipe\ToServer35" communication:
--- snip --- 0032:Call KERNEL32.CreateFileW(0058e768 L"\\.\pipe\ToServer35",c0000000,00000000,00000000,00000003,00000000,00000000) ret=0049885f 0032:Ret KERNEL32.CreateFileW() retval=000000b0 ret=0049885f ... 0032:Call KERNEL32.WriteFile(000000b0,0058e768,00000010,0033e108,00000000) ret=00498b95 002b:Ret KERNEL32.ConnectNamedPipe() retval=00000001 ret=00498a35 0032:Ret KERNEL32.WriteFile() retval=00000001 ret=00498b95 002b:Call KERNEL32.ReadFile(000000f8,005bf8d8,00000400,00badcc4,00000000) ret=00498aaf 0032:Call KERNEL32.ReadFile(000000b0,0058aa58,00000400,0033e074,00000000) ret=00498aaf 002b:Ret KERNEL32.ReadFile() retval=00000001 ret=00498aaf ... 002b:Call KERNEL32.PeekNamedPipe(000000f8,00000000,00000000,00000000,00000000,00badcc8) ret=00498b09 002b:Ret KERNEL32.PeekNamedPipe() retval=00000001 ret=00498b09 ... 002b:Call KERNEL32.WriteFile(000000f8,00badd3c,0000000a,00badd20,00000000) ret=00498bea 002b:Ret KERNEL32.WriteFile() retval=00000001 ret=00498bea 0032:Ret KERNEL32.ReadFile() retval=00000001 ret=00498aaf 002b:Call KERNEL32.FlushFileBuffers(000000f8) ret=00498bf3 0032:Call KERNEL32.PeekNamedPipe(000000b0,00000000,00000000,00000000,00000000,0033e078) ret=00498b09 0032:Ret KERNEL32.PeekNamedPipe() retval=00000001 ret=00498b09 0032:Call ntdll.RtlFreeHeap(00584000,00000000,0058e768) ret=004b0df8 0032:Ret ntdll.RtlFreeHeap() retval=00000001 ret=004b0df8 002b:Ret KERNEL32.FlushFileBuffers() retval=00000001 ret=00498bf3 ... 002b:Call KERNEL32.ConnectNamedPipe(000000f8,00000000) ret=00498a35 0032:Call KERNEL32.WriteFile(000000b0,0058fb10,0000004a,0033e108,00000000) ret=00498b95 0032:Ret KERNEL32.WriteFile() retval=00000001 ret=00498b95 0032:Call KERNEL32.ReadFile(000000b0,0058aa58,00000400,0033e074,00000000) ret=00498aaf 002b:Ret KERNEL32.ConnectNamedPipe() retval=00000000 ret=00498a35 --- snip ---
Messages containing unicode ascii strings are exchanged over pipe. Looks like some proprietary installer protocol.
At some point a custom action "AI_ExtractFiles" (ExtractSourceFiles) is executed on the client side:
--- snip --- ... 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_ExtractFiles" (401 L"Prereq.dll" L"ExtractSourceFiles") ... 0032:trace:msi:HANDLE_CustomType1 Calling function L"ExtractSourceFiles" from L"C:\users\focht\Temp\msicd98.tmp" ... 0032:Call ole32.CoCreateGuid(008fd7b4) ret=7d531a09 0032:Call rpcrt4.UuidCreate(008fd7b4) ret=7e69c445 0032:Call advapi32.SystemFunction036(008fd7b4,00000010) ret=7e639113 0032:Ret advapi32.SystemFunction036() retval=00000001 ret=7e639113 0032:Ret rpcrt4.UuidCreate() retval=00000000 ret=7e69c445 0032:Ret ole32.CoCreateGuid() retval=00000000 ret=7d531a09 0032:Call KERNEL32.CreateThread(00000000,00000000,7d531866,008fd7b4,00000000,00000000) ret=7d531a7b 0032:Ret KERNEL32.CreateThread() retval=000000d8 ret=7d531a7b 0032:trace:msi:wait_thread_handle waiting for L"AI_ExtractFiles" ... 0038:Starting thread proc 0x7d531866 (arg=0x8fd7b4) ... 0038:Call KERNEL32.LoadLibraryW(0015e964 L"C:\users\focht\Temp\msicd98.tmp") ret=7d5314d7 0038:Ret KERNEL32.LoadLibraryW() retval=00340000 ret=7d5314d7 ... 0038:Call KERNEL32.GetProcAddress(00340000,00919c48 "ExtractSourceFiles") ret=7d531577 0038:Ret KERNEL32.GetProcAddress() retval=0035980b ret=7d531577 ... 0038:trace:msi:alloc_msi_remote_handle 0x9067f8 -> 4 0038:trace:msi:ACTION_CallDllFunction calling L"ExtractSourceFiles" ... 0038:Call KERNEL32.CreateFileA(0091ad78 "\\.\pipe\ToServerAdvinst_Extract_Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe",c0000000,00000000,00000000,00000003,00000000,00000000) ret=00348e1f 0038:Ret KERNEL32.CreateFileA() retval=000000dc ret=00348e1f ... 0038:Call KERNEL32.WriteFile(000000dc,0091afb8,00000004,093ce7c4,00000000) ret=003490ca 0038:Ret KERNEL32.WriteFile() retval=00000001 ret=003490ca 0038:Call KERNEL32.FlushFileBuffers(000000dc) ret=003490d3 0038:Ret KERNEL32.FlushFileBuffers() retval=00000001 ret=003490d3 0038:Call ntdll.RtlFreeHeap(00110000,00000000,0091afa8) ret=00362277 0038:Ret ntdll.RtlFreeHeap() retval=00000001 ret=00362277 0038:Call KERNEL32.ConnectNamedPipe(000000dc,00000000) ret=00349011 0038:fixme:ntdll:server_ioctl_file Unsupported ioctl 110008 (device=11 access=0 func=2 method=0) 0038:Ret KERNEL32.ConnectNamedPipe() retval=00000000 ret=00349011 0038:Call KERNEL32.GetLastError() ret=0034901b 0038:Ret KERNEL32.GetLastError() retval=00000032 ret=0034901b 0038:Call KERNEL32.ReadFile(000000dc,091c30b0,00007f90,093ce7c0,00000000) ret=0034904e 0025:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=00472b8c 0025:Call KERNEL32.WaitForSingleObject(00000060,000000c8) ret=00472b8c 0025:Ret KERNEL32.WaitForSingleObject() retval=00000102 ret=00472b8c 0025:Call KERNEL32.WaitForSingleObject(00000060,000000c8) ret=00472b8c ... --- snip ---
At this point the client (tid 0x38) hangs.
The strange ConnectNamedPipe() call which looks like server-side pipe code can be safely ignored. It's a no-op on pipe client and for whatever reason executed here (app bug?).
The hang results from the second pipe being opened and written to/read from "\\.\pipe\ToServerAdvinst_Extract_Z:\home\focht\Downloads\SourceTreeSetup_1.3.2.exe" for which the pipe server has no pending ConnectNamedPipe() call.
Looking at the exports list of that custom action dll:
--- snip --- ... EstimateExtractFiles ExtractSourceFiles ... --- snip ---
It seems "EstimateExtractFiles" which connects to first pipe must be called prior "ExtractSourceFiles".
Searching the trace log with "custom action" yields:
--- snip --- ... 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_SET_INSTALL" (33 L"AI_INSTALL" L"1") 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_ResolveLocalizedCredentials" (1 L"aicustact.dll" L"GetLocalizedCredentials") 002c:trace:msi:DllThread custom action (2c) started 002c:trace:msi:DllThread custom action (2c) returned 0 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_ResolveKnownFolders" (1 L"aicustact.dll" L"AI_ResolveKnownFolders") 002d:trace:msi:DllThread custom action (2d) started 002d:trace:msi:DllThread custom action (2d) returned 0 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_BACKUP_AI_SETUPEXEPATH" (33 L"AI_SETUPEXEPATH_ORIGINAL" L"[AI_SETUPEXEPATH]") 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_RESTORE_AI_SETUPEXEPATH" (33 L"AI_SETUPEXEPATH" L"[AI_SETUPEXEPATH_ORIGINAL]") 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_AppSearchEx" (1 L"Prereq.dll" L"DoAppSearchEx") 002e:trace:msi:DllThread custom action (2e) started 002e:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a custom action! 002e:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a custom action! 002e:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a custom action! 002e:trace:msi:DllThread custom action (2e) returned 0 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_SETMIXINSTLOCATION" (1 L"aicustact.dll" L"MixedAllUsersInstallLocation") 002f:trace:msi:DllThread custom action (2f) started 002f:trace:msi:DllThread custom action (2f) returned 0 002b:trace:msi:ACTION_CustomAction Handling custom action L"AI_RESTORE_LOCATION" (41 L"aicustact.dll" L"RestoreLocation") 0030:trace:msi:DllThread custom action (30) started 0030:trace:msi:DllThread custom action (30) returned 0 002b:trace:msi:ACTION_CustomAction Handling custom action L"SET_APPDIR" (133 L"APPDIR" L"[AI_UserProgramFiles][Manufacturer]\[ProductName]") 002b:trace:msi:ACTION_CustomAction Handling custom action L"SET_SHORTCUTDIR" (133 L"SHORTCUTDIR" L"[ProgramMenuFolder][Manufacturer]\[ProductName]") ... 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_GetArpIconPath" (1 L"aicustact.dll" L"GetArpIconPath") 0033:trace:msi:DllThread custom action (33) started 0033:trace:msi:DllThread custom action (33) returned 0 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_ResolveLocalizedCredentials" (1 L"aicustact.dll" L"GetLocalizedCredentials") 0034:trace:msi:DllThread custom action (34) started 0034:trace:msi:DllThread custom action (34) returned 0 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_ResolveKnownFolders" (1 L"aicustact.dll" L"AI_ResolveKnownFolders") 0035:trace:msi:DllThread custom action (35) started 0035:trace:msi:DllThread custom action (35) returned 0 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_BACKUP_AI_SETUPEXEPATH" (33 L"AI_SETUPEXEPATH_ORIGINAL" L"[AI_SETUPEXEPATH]") 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_RESTORE_AI_SETUPEXEPATH" (33 L"AI_SETUPEXEPATH" L"[AI_SETUPEXEPATH_ORIGINAL]") 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_AppSearchEx" (1 L"Prereq.dll" L"DoAppSearchEx") 0036:trace:msi:DllThread custom action (36) started 0036:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a custom action! 0036:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a custom action! 0036:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a custom action! 0036:trace:msi:DllThread custom action (36) returned 0 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_SETMIXINSTLOCATION" (1 L"aicustact.dll" L"MixedAllUsersInstallLocation") 0037:trace:msi:DllThread custom action (37) started 0037:trace:msi:DllThread custom action (37) returned 0 0032:trace:msi:ACTION_CustomAction Handling custom action L"SET_TARGETDIR_TO_APPDIR" (33 L"TARGETDIR" L"[APPDIR]") 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_STORE_LOCATION" (33 L"ARPINSTALLLOCATION" L"[APPDIR]") 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_DATA_SETTER" (33 L"AI_ExtractFiles" L"[AI_SETUPEXEPATH]") 0032:trace:msi:ACTION_CustomAction Handling custom action L"AI_ExtractFiles" (401 L"Prereq.dll" L"ExtractSourceFiles") 0038:trace:msi:DllThread custom action (38) started --- snip ---
Dumping the "custom action" table from extracted "SourceTreeSetup_1.3.2.msi" with ORCA:
--- snip --- Action Type Source Target ExtendedType s72 i2 S72 S0 I4 ... AI_ExtractFiles 1025 Prereq.dll ExtractSourceFiles ... AI_EstimateExtractFiles 1 Prereq.dll EstimateExtractFiles --- snip ---
Dumping "InstallExecuteSequence" table:
--- snip --- Action Condition Sequence s72 S255 I2 ... AI_ExtractFiles 3998 ... AI_EstimateExtractFiles 3999 --- snip ---
"AI_EstimateExtractFiles" has a higher sequence id than "AI_ExtractFiles".
The important thing here is the type of custom action (see "custom action" table):
"AI_EstimateExtractFiles" -> type 1 custom action
"AI_ExtractFiles" -> type 1025 = type 1 custom action that is deferred (+1024).
Wine's msi executes "AI_ExtractFiles" as standard type 1 custom action in order of sequence id.
Regards
http://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |levanchelidze@gmail.com
--- Comment #3 from Anastasius Focht focht@gmx.net 2013-11-28 17:09:02 CST --- *** Bug 35011 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Atlassian SourceTree |Multiple installers using |(Mercurial and Git client) |Caphyon 'Advanced |v1.3.2 installer hangs |Installer' (AI) technology |(deferred type 1 custom |hang (Atlassian SourceTree |action executed before |v1.3.2, League of Legends |regular type 1 custom |06_12_13) (deferred type 1 |action) |custom action executed | |before regular type 1 | |custom action)
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
refining summary because multiple installers are affected.
The installers are based on Caphyon 'Advanced Installer' (AI) technology (http://www.advancedinstaller.com).
$ wine --version wine-1.7.9-158-g33fa552
Regards
http://bugs.winehq.org/show_bug.cgi?id=34989
Leif Ringstad leifcr@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leifcr@gmail.com
--- Comment #5 from Leif Ringstad leifcr@gmail.com --- Bug #30296 is related to the issue
http://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #6 from Leif Ringstad leifcr@gmail.com --- Bug #27576 is related as well
http://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bunglehead@gmail.com
--- Comment #7 from Anastasius Focht focht@gmx.net --- *** Bug 35589 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=34989
Erich Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |erich.e.hoover@gmail.com
--- Comment #8 from Erich Hoover erich.e.hoover@gmail.com --- At least with the installer http://whollygenes.swmirror.com/tmg9setup.exe (from Bug #35589) telling Wine to defer that particular action is not sufficient to fix the problem. It appears that it needs to be deferred, but must still occur prior to the install step: === err:msi:ready_media cabinet not found: L"C:\users\Public\Application Data\The Master Genealogist v9 Installer\disk1.cab" err:msi:ACTION_InstallFiles Failed to ready media for L"fow.app" ===
http://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello folks,
another installer suffering from this: 'Cashflow 4.3' -> http://www.bankingtools.nl/cashflow-manager.html
Prerequisite: 'winetricks -q dotnet40'
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+msi wine ./CF4323-Generic.exe >>log.txt 2>& ... 0046:Call KERNEL32.CreateFileA(00d551c0 "\\.\pipe\ToServerAdvinst_Extract_Z:\home\focht\Downloads\CF4323-Generic.exe",c0000000,00000000,00000000,00000003,00000000,00000000) ret=00548d62 0046:Ret KERNEL32.CreateFileA() retval=0000011c ret=00548d62 ... 0046:Call KERNEL32.ConnectNamedPipe(0000011c,00000000) ret=00548f54 0046:fixme:ntdll:server_ioctl_file Unsupported ioctl 110008 (device=11 access=0 func=2 method=0) 0046:Ret KERNEL32.ConnectNamedPipe() retval=00000000 ret=00548f54 0046:Call KERNEL32.GetLastError() ret=00548f5e 0046:Ret KERNEL32.GetLastError() retval=00000032 ret=00548f5e 0046:Call KERNEL32.ReadFile(0000011c,006ea060,00007f90,014ce7c0,00000000) ret=00548f91 0031:Ret winex11.drv.MsgWaitForMultipleObjectsEx() retval=00000001 ret=7e96efc7 ... --- snip ---
$ sha1sum CF4323-Generic.exe 50b597e58b8f84620fdc7b6f30a3826eff76210a CF4323-Generic.exe
$ du -sh CF4323-Generic.exe 19M CF4323-Generic.exe
$ wine --version wine-1.7.15
Regards
https://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |30773
http://bugs.winehq.org/show_bug.cgi?id=34989
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|bunglehead@gmail.com |
https://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple installers using |Multiple installers using |Caphyon 'Advanced |Caphyon 'Advanced |Installer' (AI) technology |Installer' (AI) technology |hang (Atlassian SourceTree |hang (Atlassian SourceTree |v1.3.2, League of Legends |v1.3.2, League of Legends |06_12_13) (deferred type 1 |2013+) (deferred type 1 |custom action executed |custom action executed |before regular type 1 |before regular type 1 |custom action) |custom action)
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
Refining summary as all LoL shell (bootstrapper) installers from 2013 and later suffer from this.
Download: http://l3cdn.riotgames.com/ShellInstaller/EUW/LeagueofLegends_EUW_Installer_...
$ sha1sum LeagueofLegends_EUW_Installer_9_15_2014.exe c18abec07aea597e0b7b9453018da05f40a1a382 LeagueofLegends_EUW_Installer_9_15_2014.exe
$ du -sh LeagueofLegends_EUW_Installer_9_15_2014.exe 30M LeagueofLegends_EUW_Installer_9_15_2014.exe
$ wine --version wine-1.7.27-47-g92bcb74
Regards
https://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |graham@nerve.org.za
--- Comment #11 from Anastasius Focht focht@gmx.net --- *** Bug 33345 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
Chris cmyers@millikin.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cmyers@millikin.edu
https://bugs.winehq.org/show_bug.cgi?id=34989
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=34989
Teras teras@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |teras@luukku.com
--- Comment #12 from Teras teras@luukku.com --- Still an issue
wine-1.7.37-304-g10fba14
https://bugs.winehq.org/show_bug.cgi?id=34989
bugzilla@dolphinling.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla@dolphinling.net
https://bugs.winehq.org/show_bug.cgi?id=34989
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #46625|application/octet-stream |text/plain mime type| |
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #13 from Sebastian Lackner sebastian@fds-team.de --- Created attachment 51560 --> https://bugs.winehq.org/attachment.cgi?id=51560 msi: Always defer execution of custom actions.
(In reply to Erich E. Hoover from comment #8)
At least with the installer http://whollygenes.swmirror.com/tmg9setup.exe (from Bug #35589) telling Wine to defer that particular action is not sufficient to fix the problem. It appears that it needs to be deferred, but must still occur prior to the install step: === err:msi:ready_media cabinet not found: L"C:\users\Public\Application Data\The Master Genealogist v9 Installer\disk1.cab" err:msi:ACTION_InstallFiles Failed to ready media for L"fow.app" ===
There are indeed multiple problems.
The problem described in this bug report is "easy" to resolve. As analyzed by Anastasius, the deferred action should not be executed immediately. I'm attaching a patch here which fixes this issue.
The second problem is more difficult. My theory is that Wine executes the InstallFiles action (and probably a lot more actions) in the wrong phase. MSDN and various other pages mention, that the immediate phase should not modify the system, but Wine tries to copy files immediately. In order to fix this properly various actions which currently happen in phase 1 have to be moved to phase 2, the risk of breaking things by such a change is very big. I'm attaching a quick & dirty hack here which is at least sufficient for the SourceTree application.
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #14 from Sebastian Lackner sebastian@fds-team.de --- Created attachment 51561 --> https://bugs.winehq.org/attachment.cgi?id=51561 HACK: Run INSTALL script before ACTION_InstallFiles.
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #15 from Sebastian Lackner sebastian@fds-team.de --- The information on the following website http://www.installsite.org/pages/en/isnews/200108/ seems to confirm my theory:
"""While the installer builds the script, only immediate execution custom actions are actually executed. All other actions (standard actions like InstallFiles and deferred execution custom actions) are only noted in the script."""
"""All the script execution takes place "inside" the InstallFinalize action."""
By the way ... Rollback execution is also implemented completely wrong:
"""While the installer executes the installation script, it builds a rollback script. For any standard action in the installation script, a rollback command is added to the rollback script. The installer cannot automatically undo changes that custom actions make to the target system. Instead it adds any rollback custom actions to the rollback script."""
With the current method (build the rollback script directly in phase 1) this obviously can't work correctly. The rollback script has to be generated while processing the install script, to make sure only failed parts are actually rolled back and not everything. Wondering a bit why the current implementation works at all ;)
https://bugs.winehq.org/show_bug.cgi?id=34989
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #51560|0 |1 is obsolete| | Attachment #51561|0 |1 is obsolete| |
--- Comment #16 from Sebastian Lackner sebastian@fds-team.de --- Created attachment 51562 --> https://bugs.winehq.org/attachment.cgi?id=51562 msi: Various fixes for deferred action handling.
This patch is a bit more complete attempt to fix this issue. Unfortunately I am not sure how to test this properly, so if someone familiar with msi could help writing tests, that would be very appreciated. Also, if the patch causes a regression for a specific installer please report back so I can take a closer look.
https://bugs.winehq.org/show_bug.cgi?id=34989
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |michael@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=34989
Mike Ellery mellery@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mellery@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=34989
dj-max_payne@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dj-max_payne@hotmail.com
https://bugs.winehq.org/show_bug.cgi?id=34989
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #17 from super_man@post.com --- (In reply to Sebastian Lackner from comment #16)
Created attachment 51562 [details] msi: Various fixes for deferred action handling.
This patch is a bit more complete attempt to fix this issue. Unfortunately I am not sure how to test this properly, so if someone familiar with msi could help writing tests, that would be very appreciated. Also, if the patch causes a regression for a specific installer please report back so I can take a closer look.
The patch indeed seem to work. I tried the exe that was at url field. Local copy of it.
Still valid issue wine 1.9
https://bugs.winehq.org/show_bug.cgi?id=34989
Sam manzisam@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |manzisam@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=34989
Robert Walker bob.mt.wya@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bob.mt.wya@gmail.com
--- Comment #18 from Robert Walker bob.mt.wya@gmail.com --- *** Bug 40816 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #19 from Robert Walker bob.mt.wya@gmail.com --- This (In reply to Sebastian Lackner from comment #16)
Created attachment 51562 [details] msi: Various fixes for deferred action handling.
RE: Webrotate 360 (Free) installation hang - see https://forum.winehq.org/posting.php?mode=reply&f=8&t=26993
This patch was tested with Wine version: wine-1.9.15-197-g9ef65cf
This patch allows the application to complete installation. Combine that with winetricks dotnet40 and the application runs as well.
Any (cough) chance this patch will find it's way into Wine or Wine-Staging? Regular users aren't going to be rebuilding Wine from source after all!!
Thanks
https://bugs.winehq.org/show_bug.cgi?id=34989
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #20 from winetest@luukku.com --- The patch doesnt apply cleanly anymore against wine 1.9.24.
https://bugs.winehq.org/show_bug.cgi?id=34989
C0rn3j spleefer90@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |spleefer90@gmail.com
--- Comment #21 from C0rn3j spleefer90@gmail.com --- The Curse v6 page says reworking the patch to work with wine 2.2 is "easy", would it be possible for the author of the patch to rework this so this can possible get into wine/wine-staging?
https://bugs.winehq.org/show_bug.cgi?id=34989
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox_xerox2000@yahoo.co.uk
--- Comment #22 from Louis Lenders xerox_xerox2000@yahoo.co.uk --- Created attachment 57910 --> https://bugs.winehq.org/attachment.cgi?id=57910 rebased patch against current from comment 16
I rebased the patch from comment 16 so applies again against current git.
https://bugs.winehq.org/show_bug.cgi?id=34989
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #23 from Zebediah Figura z.figura12@gmail.com --- *** Bug 43093 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gijsvrm@gmail.com
--- Comment #24 from Gijs Vermeulen gijsvrm@gmail.com --- Should be fixed by: https://source.winehq.org/git/wine.git/commit/86bc556f9fd4a964cbaa66bc1fd67e...
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #25 from Zebediah Figura z.figura12@gmail.com --- (In reply to Gijs Vermeulen from comment #24)
Should be fixed by: https://source.winehq.org/git/wine.git/commit/ 86bc556f9fd4a964cbaa66bc1fd67e4603ecd450
It's partially fixed—it no longer hangs—but, as Sebastian Lackner said in comment #13, it appears that there are a number of standard actions that need to be deferred as well. I'm working on a patch to fix those.
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #26 from Zebediah Figura z.figura12@gmail.com --- Created attachment 59248 --> https://bugs.winehq.org/attachment.cgi?id=59248 Updated patch to apply against current git
As pointed out by Michael Müller, this is going to need per-action treatment since some actions do error checking immediately but defer execution. I've attached the patch here in the meantime.
https://bugs.winehq.org/show_bug.cgi?id=34989
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=34989
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |42648
https://bugs.winehq.org/show_bug.cgi?id=34989
Mike Ellery mellery@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|mellery@gmail.com |
https://bugs.winehq.org/show_bug.cgi?id=34989
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jhansonxi@gmail.com
--- Comment #27 from Louis Lenders xerox.xerox2000x@gmail.com --- *** Bug 39817 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #28 from Louis Lenders xerox.xerox2000x@gmail.com --- Created attachment 60702 --> https://bugs.winehq.org/attachment.cgi?id=60702 rebased patch against current git
I rebased Zebediah`s patch from 21-09-2017 against current git, because it didn`t apply cleanly anymore.
Didn`t know that git was so smart but I could just do
git diff 661791cb7ea3757655aeff4fb061ada27a88cecc..f5268feeacbd86fd680f88cdfb337ceca14ad03e -- dlls/msi
where 6617..... is current HEAD and f5268...... is some commit from 21-09-2017.
Then apply Zebediah`s patch from 21-09-2017
https://bugs.winehq.org/show_bug.cgi?id=34989
--- Comment #29 from Louis Lenders xerox.xerox2000x@gmail.com --- *** Bug 39201 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |45317
https://bugs.winehq.org/show_bug.cgi?id=34989
winetaste@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetaste@gmx.net
https://bugs.winehq.org/show_bug.cgi?id=34989
zzzzzyzz@hacari.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzzzzyzz@hacari.org
https://bugs.winehq.org/show_bug.cgi?id=34989
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED Staged patchset| |https://github.com/wine-sta | |ging/wine-staging/tree/mast | |er/patches/msi-Deferral
--- Comment #30 from Zebediah Figura z.figura12@gmail.com --- Marking STAGED.
https://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |45455
https://bugs.winehq.org/show_bug.cgi?id=34989
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |2a9e0f1fada4a414cc750f6d455 | |95342f473e02f Status|STAGED |RESOLVED
--- Comment #31 from Zebediah Figura z.figura12@gmail.com --- Fixed by 2a9e0f1fada4a414cc750f6d45595342f473e02f.
https://bugs.winehq.org/show_bug.cgi?id=34989
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #32 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.14.
https://bugs.winehq.org/show_bug.cgi?id=34989 Bug 34989 depends on bug 45317, which changed state.
Bug 45317 Summary: updating wine mono does not change version in uninstaller.exe https://bugs.winehq.org/show_bug.cgi?id=45317
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
https://bugs.winehq.org/show_bug.cgi?id=34989
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andrey.goosev@gmail.com
--- Comment #33 from Louis Lenders xerox.xerox2000x@gmail.com --- *** Bug 32918 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mikhail.v.gavrilov@gmail.co | |m
--- Comment #34 from Louis Lenders xerox.xerox2000x@gmail.com --- *** Bug 44396 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=34989
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://downloads.atlassian. |https://web.archive.org/web |com/software/sourcetree/win |/20160224050044/https://dow |dows/SourceTreeSetup_1.3.2. |nloads.atlassian.com/softwa |exe |re/sourcetree/windows/Sourc | |eTreeSetup_1.3.2.exe