Bugs item #1945492, was opened at 2008-04-18 10:27
Message generated for change (Tracker Item Submitted) made by Item Submitter
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: None
Status: Open
Resolution: None
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

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

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