[Bug 15748] .NET 1.1's dotnetfx fails to install, aborts when it can't stop the msi service?

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Nov 24 17:11:01 CST 2008


http://bugs.winehq.org/show_bug.cgi?id=15748


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net




--- Comment #4 from Anastasius Focht <focht at 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


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list