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