I turned on full installer logging in the registry, so that a log file is
ceated in %Temp% for every .msi package installed.
There was a log file for the main package and each of the chained package.
When the installation succeeded (it didn't hang) there was also a log file
which had the following content:
=== Verbose logging started: 11/11/2008 13:32:03 Build type: SHIP UNICODE
4.05.6001.00 Calling process: C:\WINDOWS\Installer\MSIE.tmp ===
MSI (c) (C4:80) [13:32:26:109]: Cloaking enabled.
MSI (c) (C4:80) [13:32:26:109]: Attempting to enable all disabled privileges
before calling Install on Server
=== Verbose logging stopped: 11/11/2008 13:32:26 ===
The last entry in the log file for the last chained package has a time of
13:32:26:093
In the log file for the main package there are the following two lines:
MSI (s) (B0:E0) [13:30:00:078]: MainEngineThread is returning 0
MSI (c) (B0:B8) [13:32:26:125]: Back from server. Return value: 0
So it seems obvious looking at the times that after the last chained package
is installed, something happens which creates the first log file (the one
with Cloaking Enabled as the first line). After this process is complete, the
log file for the main package reports "Back from server" and everything
proceeds as normal.
Now here is the interesting bit. When the installation hangs, there appears
a log file which is completely empty (the equivalent of the "Cloaking Enabled
log file). The last line in the log file for the main package is:
MSI (s) (5C:F0) [08:28:15:078]: MainEngineThread is returning 0
So, for some reason, the process which creates the "Cloaking Enabled" log
file hangs, and this means that the "Back from server" line never appears in
the log file for the main package.
Also, when the installation process hangs up, there is a process MSIE.tmp in
the task manager. If this process is killed the installation completes (the
window with Finish on appears) so I assume that this is the process which is
hung.
Does anyone have any idea what is going on here? What is the process which
creates the "Cloaking Enabled" log file and what do the two lines in this
file mean?