Bugs item #1945492, was opened at 2008-04-18 01:27
Message generated for change (Comment added) made by robmen
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1945492&group_id=105970

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
>Group: v2.0
>Status: Closed
>Resolution: Works For Me
Priority: 5
Private: No
Submitted By: Thomas Moerkerken (tm001)
Assigned to: Nobody/Anonymous (nobody)
Summary: CA action failing but not reporting failure in wix 2

Initial Comment:
Hi Team,

Im having problems with installers adding an application pool and a virtual dir 
in IIS 6.0. It sometimes goes wrong installing on our production machines, but 
reports a successful installation. Simply uninstalling and installing again 
resolves the issue. 

I was not able to reproduce this on my development machine. I could however 
recover a log from one of our productionmachines where it shows the failure.

Im guessing the item added to IIS is not important since its the 
WriteMetabaseChanges function being troublesome.

Expected behaviour:
* WiX adds the apppool / vdir to IIS
* WiX performs a rollback if it cannot add the apppool / vdir


Actual behaviour
* WiX does not always add the apppool / vdir
* WiX does not perform a rollback if it cannot add the apppool / vdir

System: Windows 2003 Server
WiX version: 2.0.5805

a failed MSI Log:

<snip>
MSI (s) (B4:8C) [11:02:50:969]: Running as a service.
MSI (s) (B4:8C) [11:02:50:969]: Hello, I'm your 32bit Elevated custom action 
server.
MSI (s) (B4:C0) [11:02:51:266]: Executing op: 
ActionStart(Name=StartMetabaseTransaction,Description=Starting IIS Metabase 
Transaction,)
MSI (s) (B4:C0) [11:02:51:266]: Executing op: 
CustomActionSchedule(Action=StartMetabaseTransaction,ActionType=11265,Source=BinaryData,Target=**********,CustomActionData=**********)
MSI (s) (B4:9C) [11:02:51:297]: Invoking remote custom action. DLL: 
C:\WINDOWS\Installer\MSI5C.tmp, Entrypoint: StartMetabaseTransaction
MSI (s) (B4:C0) [11:02:51:406]: Executing op: 
ActionStart(Name=RollbackMetabaseTransaction,Description=Rolling back IIS 
Metabase Transaction,)
MSI (s) (B4:C0) [11:02:51:406]: Executing op: 
CustomActionSchedule(Action=RollbackMetabaseTransaction,ActionType=11521,Source=BinaryData,Target=**********,CustomActionData=**********)
MSI (s) (B4:C0) [11:02:51:406]: Executing op: 
ActionStart(Name=CommitMetabaseTransaction,Description=Committing IIS Metabase 
Transaction,)
MSI (s) (B4:C0) [11:02:51:406]: Executing op: 
CustomActionSchedule(Action=CommitMetabaseTransaction,ActionType=11777,Source=BinaryData,Target=**********,CustomActionData=**********)
MSI (s) (B4:C0) [11:02:51:406]: Executing op: 
ActionStart(Name=WriteMetabaseChanges,Description=Installing Metabase Keys and 
Values,)
MSI (s) (B4:C0) [11:02:51:406]: Executing op: 
CustomActionSchedule(Action=WriteMetabaseChanges,ActionType=11265,Source=BinaryData,Target=**********,CustomActionData=**********)
MSI (s) (B4:F0) [11:02:51:438]: Invoking remote custom action. DLL: 
C:\WINDOWS\Installer\MSI5D.tmp, Entrypoint: WriteMetabaseChanges
WriteMetabaseChanges:  failed to open '/LM/W3SVC/863870699/Root/vdir/' key, 
retrying 0 time(s)...
MSI (s) (B4:C0) [11:02:52:688]: Executing op: 
ActionStart(Name=WriteRegistryValues,Description=Writing system registry 
values,Template=Key: [1], Name: [2], Value: [3])
MSI (s) (B4:C0) [11:02:52:688]: Executing op: 
ProgressTotal(Total=5,Type=1,ByteEquivalent=13200)
MSI (s) (B4:C0) [11:02:52:703]: Executing op: 
RegOpenKey(Root=-2147483646,Key=Software\My Company\My 
Application,,BinaryType=0)
MSI (s) (B4:C0) [11:02:52:703]: Executing op: 
RegAddValue(Name=WebSite,Value=CustomSite,)
</snip>

Looking into the WriteMetabaseChanges function leads me to the following code:

hr = piMetabase->OpenKey(METADATA_MASTER_ROOT_HANDLE, L"/LM", 
METADATA_PERMISSION_WRITE, 10, &mhKey);
    for (i = 0; i < 30 && HRESULT_FROM_WIN32(ERROR_PATH_BUSY) == hr; i++)
    {
        ::Sleep(1000);
        WcaLog(LOGMSG_STANDARD, "failed to open '%S' key, retrying %d 
time(s)...", pwzKey, i);
        hr = piMetabase->OpenKey(METADATA_MASTER_ROOT_HANDLE, pwzKey, 
METADATA_PERMISSION_WRITE, 10, &mhKey);
    }

Im no C++ guru but I would expect this to try 30 times, but I do not see this 
in my log. Also note that the arguments on the OpenKey function differ: L"/LM"  
on the first statement and pwzKey on the last. 

Can someone help me find a good fix?

Thanks,
Thomas

----------------------------------------------------------------------

>Comment By: Rob Mensching (robmen)
Date: 2008-05-01 20:04

Message:
Logged In: YES 
user_id=991639
Originator: NO

This was a bug in a previous versoin of the WiX toolset that I was pretty
sure was fixed in the latest drop of WiX v2.  Can you try that and see if
it is fixed.  If not, reopen this bug and any extra information would be
appreciated.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1945492&group_id=105970

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to