http://bugs.winehq.org/show_bug.cgi?id=15748
Summary: .NET 1.1's dotnetfx fails to install, aborts when it can't stop the msi service? Product: Wine Version: 1.1.7 Platform: Other OS/Version: other Status: NEW Keywords: download, Installer, regression Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
winetricks dotnet11, or any other way of running the .net 1.1 runtime installer, seems to abort for me with a dialog saying
An error occurred while Windows Installer was initializing...
C:\windows\temp\dotNetFx.log says StopDarwinService() - Call to ControlService() failed! GetLastError() returned: <183>
183 is ERROR_ALREADY_EXISTS.
Wine's log says 003d:Call advapi32.OpenServiceA(0013c4f0,00402740 "msiserver",00000024) ret=0040b496 ... trace:service:OpenServiceW returning 0x135278 003d:Ret advapi32.OpenServiceA() retval=00135278 ret=0040b496 003d:Call advapi32.QueryServiceStatus(00135278,0033f114) ret=0040b50f trace:service:QueryServiceStatus 0x135278 0x33f114 trace:service:QueryServiceStatusEx 0x135278 0 0x33ef64 36 0x33ef88 ... 003d:Ret advapi32.QueryServiceStatus() retval=00000001 ret=0040b50f 003d:Call advapi32.ControlService(00135278,00000001,0033f158) ret=0040b58d trace:service:ControlService 0x135278 1 0x33f158 ... 003d:Ret advapi32.ControlService() retval=00000000 ret=0040b58d 003d:Call KERNEL32.CreateFileA(00530ab0 "C:\windows\temp\dotNetFx.log",40000000,00000003,0033ef1c,00000004,00000080,00000000) ret=00410106 ... 003d:Call user32.MessageBoxA(00000000,0033cec8 "An error occurred while Windows Installer was initializing. Setup will now close.",0033dfcc "Microsoft .NET Framework Setup",00000010) ret=0040a331
It seems to be aborting because it can't stop the msiserver service? Which is strange, since it probably wasn't running...
I wonder if a conformance test for ControlService would be informative.
http://bugs.winehq.org/show_bug.cgi?id=15748
James Hawkins truiken@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|msi |-unknown
--- Comment #1 from James Hawkins truiken@gmail.com 2008-10-24 12:51:08 --- Why did you mark this as an msi bug?
http://bugs.winehq.org/show_bug.cgi?id=15748
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |advapi32
--- Comment #2 from Dan Kegel dank@kegel.com 2008-10-24 13:30:01 --- To get your attention, since you probably know the most about how msi is using services.
http://bugs.winehq.org/show_bug.cgi?id=15748
--- Comment #3 from James Hawkins truiken@gmail.com 2008-10-24 13:31:47 --- It's a pretty bare-bones service, and it handles SERVICE_CONTROL_STOP well enough. You're probably right that the component is advapi32, but it will take some investigation.
http://bugs.winehq.org/show_bug.cgi?id=15748
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #4 from Anastasius Focht focht@gmx.net 2008-11-24 17:10:58 --- Hello,
it's actually services component that needs to be fixed. Only happens when no WINEPREFIX exist.
When Msiexec registers itself for the first time it creates MsiServer service entry. At the time it does this, services has already created/loaded the SCM database.
When the installer queries for the MsiServer service state, it will encounter all service entry status fields reset to zero. This is because svcctl_CreateServiceW() doesn't explicitly initialize status fields to meaningful values - in contrast to scmdatabase_load_services() which does this.
The installer looks for "SERVICE_STOPPED" but encounters zero and subsequently tries to stop the service. This obviously fails because status.dwControlsAccepted is also zero - like all other status fields.
You need to initialize at least some status fields in svcctl_CreateServiceW() to meaningful values, like
--- snip --- .. entry->status.dwServiceType = dwServiceType; entry->status.dwCurrentState = SERVICE_STOPPED; entry->status.dwWin32ExitCode = ERROR_SERVICE_NEVER_STARTED; .. --- snip ---
so any service state query which might immediately follow service creation will return correct state.
Regards
http://bugs.winehq.org/show_bug.cgi?id=15748
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #5 from Dan Kegel dank@kegel.com 2008-11-25 11:21:35 --- Thanks. I think Alexandre just did. Works now!
http://bugs.winehq.org/show_bug.cgi?id=15748
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2008-12-05 11:16:11 --- Closing bugs fixed in 1.1.10.
http://bugs.winehq.org/show_bug.cgi?id=15748
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |42fb9fe779a229ff715289d1a1e | |81e998e7fc6a6 Component|advapi32 |programs Hardware|Other |x86 OS|other |Linux
http://bugs.winehq.org/show_bug.cgi?id=15748
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet URL| |http://download.microsoft.c | |om/download/a/a/c/aac39226- | |8825-44ce-90e3-bf8203e74006 | |/dotnetfx.exe
https://bugs.winehq.org/show_bug.cgi?id=15748
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://download.microsoft.c |https://web.archive.org/web |om/download/a/a/c/aac39226- |/20090202091626/http://down |8825-44ce-90e3-bf8203e74006 |load.microsoft.com/download |/dotnetfx.exe |/a/a/c/aac39226-8825-44ce-9 | |0e3-bf8203e74006/dotnetfx.e | |xe