unknown error " when i run the sample.msi on two VM images in parallel

Jun 15, 2011 at 1:50 AM

Hi guys

I'm a new guy to remote install. I encounter one issue when try this install tool. Alway one image reports "unknown error " when i run the sample.msi on two VM images in parallel. (the result is always one pass and another failed. ) This issue is boring me very deeply. Who can give some advices to solve this? Many thanks.

Run this cmd:
Remoteinstall.exe /config:xx.config /outputDir:yy /outputXml:zz.xml

The sample.msi is palced at "C:\RemoteInstall\Sample.msi".
The VM images are placed at "D:\My Virtual Machines\win7-home_pre\"
The VMware Workstaion: 6.5.5build-328052
VIX : 1.7
The xx.config file as below
****************************************
?xml version="1.0" encoding="utf-8"?>
<configuration>
 <configSections>
   <section name="RemoteInstallConfig" type="RemoteInstall.RemoteInstallConfig, RemoteInstall" />
 </configSections>
 <RemoteInstallConfig>
    <timeouts login="120" powerOff="240" powerOn="360" logout="120"/>
    <!-- the installer will be copied to the destpath location on the remote vm -->
      <installers destpath="C:\">
        <installer file="C:\RemoteInstall\Sample.msi" name="Sample Installer" type="msi" />
      </installers>
   <virtualmachines>
     <!-- a virtual machine without snapshots: this simply runs the tests on a previously powered vm -->
     <virtualmachine type="Workstation" file="D:\My Virtual Machines\win7-home_pre\Win7_home_pre.vmx" name="Win7 Home Premium">
       <snapshots>
         <snapshot name="*" username="<username>" password="<password>" />
       </snapshots>
     </virtualmachine>
     <virtualmachine type="Workstation" file="D:\My Virtual Machines\win7_enterprise\Win7_enterprise.vmx" name="Win7 Enterprise">
       <snapshots>
         <snapshot name="*" username="<username>" password="<password>"/>
       </snapshots>
     </virtualmachine>
   </virtualmachines>
 </RemoteInstallConfig>
</configuration>
*****************************************

Developer
Jun 15, 2011 at 3:34 AM

Hi guibao,

Try running RemoteInstall.exe with verbose output by passing in /v+ to the command.

Can you also share the output?

Is this using RemoteInstall v1.2 or v1.3 (Beta)?

Thank you.

Developer
Jun 15, 2011 at 3:43 AM

Also, make sure your vmware tools in the guest OS are up to date.

Jun 15, 2011 at 4:45 AM

I make sure the vmware tools works well. Because, i run the test on two guest os in parallel. One result is pass, another is failed(sometimes, the result will reverse.). The two guest os have the same configuration except for different version.

The remoteinstall is V1.2.

The output result got by passing in /V+. Please help check it. Thanks~

********************************************************

1: Connecting to 'localhost' (Workstation)
2: Connecting to 'localhost' (Workstation)
2: Opening 'D:\My Virtual Machines\win7_enterprise\Win7_enterprise.vmx' (Workstation)
1: Opening 'D:\My Virtual Machines\win7-home_pre\Win7_home_pre.vmx' (Workstation)
2: Preparing 'Win7 Enterprise:Current Snapshot'
1: Preparing 'Win7 Home Premium:Current Snapshot'
2:  Powering on 'Remote:Win7 Enterprise'
1:  Powering on 'Remote:Win7 Home Premium'
2:  Waiting for 'Remote:Win7 Enterprise'
1:  Waiting for 'Remote:Win7 Home Premium'
1:  Logging on to 'Remote:Win7 Home Premium' as 'Administrator'
1: Copying 'Sample Installer' to 'Win7 Home Premium:Current Snapshot'
1:  'C:\RemoteInstall\Sample.msi' => Remote:'C:\Sample.msi'
2:  Logging on to 'Remote:Win7 Enterprise' as 'Administrator'
1: Running 'Remote:Sample Installer', 'C:\Sample.msi'
1: Saving logs in '0614\RemoteInstall\Sample Installer\Win7 Home Premium\Current Snapshot'
1: Installing 'Remote:Sample Installer', 'C:\Sample.msi'
1:  Executing 'Remote:msiexec.exe /qn /i "C:\Sample.msi" /l*v "C:\Sample.msii.log" '
2: Copying 'Sample Installer' to 'Win7 Enterprise:Current Snapshot'
2:  'C:\RemoteInstall\Sample.msi' => Remote:'C:\Sample.msi'
2: Running 'Remote:Sample Installer', 'C:\Sample.msi'
2: Saving logs in '0614\RemoteInstall\Sample Installer\Win7 Enterprise\Current Snapshot'
2: Installing 'Remote:Sample Installer', 'C:\Sample.msi'
2:  Executing 'Remote:msiexec.exe /qn /i "C:\Sample.msi" /l*v "C:\Sample.msii.log" '
1: Uninstalling 'Remote:Sample Installer', 'C:\Sample.msi'
1:  Executing 'Remote:msiexec.exe /qn /x "C:\Sample.msi" /l*v "C:\Sample.msix.log" '
1: Done after '00:00:02.1250000'
1: Collecting 'Remote:C:\Sample.msii.log' => '0614\RemoteInstall\Sample Installer\Win7 Home Premium\Current Snapshot\Sample.msii.log'
1:  'Remote:C:\Sample.msii.log' => '0614\RemoteInstall\Sample Installer\Win7 Home Premium\Current Snapshot\Sample.msii.log'
1: Collecting 'Remote:C:\Sample.msix.log' => '0614\RemoteInstall\Sample Installer\Win7 Home Premium\Current Snapshot\Sample.msix.log'
1:  'Remote:C:\Sample.msix.log' => '0614\RemoteInstall\Sample Installer\Win7 Home Premium\Current Snapshot\Sample.msix.log'
1: Closing 'D:\My Virtual Machines\win7-home_pre\Win7_home_pre.vmx' (Workstation)
1: Disconnecting from 'localhost' (Workstation)
2: ERROR: Unknown error
2:   Exception: Vestris.VMWareLib.VMWareException
2:    at Vestris.VMWareLib.VMWareInterop.Check(UInt64 errCode)
   at Vestris.VMWareLib.VMWareJob.Wait[T](Object[] properties)
   at Vestris.VMWareLib.VMWareJob.Wait[T](Object[] properties, Int32 timeoutInSeconds)
   at Vestris.VMWareLib.VMWareVirtualMachine.RunProgramInGuest(String guestProgramName, String commandLineArgs, Int32 options, Int32 timeoutInSeconds)
   at Vestris.VMWareLib.VMWareVirtualMachine.RunProgramInGuest(String guestProgramName, String commandLineArgs)
   at RemoteInstall.VMWareMappedVirtualMachine.RunProgramInGuest(String path, String parameters)
   at RemoteInstall.VirtualMachineMsiDeployment.MsiExec(String msiPath, String msiArgs, MsiAction action, String& logfile)
   at RemoteInstall.VirtualMachineMsiDeployment.Install(String& logfile)
   at RemoteInstall.Instance.InstallUninstall(InstanceOptions options)
2: Done after '00:00:02.0781250'
2: Collecting 'Remote:C:\Sample.msii.log' => '0614\RemoteInstall\Sample Installer\Win7 Enterprise\Current Snapshot\Sample.msii.log'
2:  'Remote:C:\Sample.msii.log' => '0614\RemoteInstall\Sample Installer\Win7 Enterprise\Current Snapshot\Sample.msii.log'
2: Closing 'D:\My Virtual Machines\win7_enterprise\Win7_enterprise.vmx' (Workstation)
2: Disconnecting from 'localhost' (Workstation)
Finished installation(s) with 2 result(s)
Writing 0614\testlog.xml

******************************************************

Developer
Jun 15, 2011 at 7:06 AM

Hi guibao,

Does the msi log file indicate that the application installed successfully or does it indicate an error?

Jun 15, 2011 at 7:22 AM

Hi icnocop,

There are Sample.msii.log and Sample.msix.log for the guest os which is passed in the test. But there is only Sample.msii.log for the guest os which is failed in the test.  And, both the Sample.msii.log of the two guest os have similar message. No obervious error in the Sample.msii.log for the guest os which is failed in the test.

Coordinator
Jun 15, 2011 at 7:27 AM

I am pretty sure Vix 1.7 has several issues with concurrency. I would definitely try to upgrade to 1.10 first.

Jun 15, 2011 at 7:33 AM

HI iconcop,

Is the timeout setting in my xx.config ok? I'm not sure whether the issue caused by the xx.config file. Please help me check it.

Jun 15, 2011 at 10:37 AM

Reinstall the latest build Vix(1.10.3), it still has the same error.   Both the Sample.msii.log and the Sample.msix.log of the two guset os are generated. But the two Sample.msix.log are obviously different. The size of Sample.msix.log from the failed os is smaller than the normal one. Relaunch the test, the Sample.msix.log of the failed guest os was not generated.  So, I guess it was caused by the uninstalltion of the second guest os when run the test in parallel. 

Same error occurs,

*****************************************************************

1: Disconnecting from 'localhost' (Workstation)
2: ERROR: Unknown error
2:   Exception: Vestris.VMWareLib.VMWareException
2:    at Vestris.VMWareLib.VMWareInterop.Check(UInt64 errCode)
   at Vestris.VMWareLib.VMWareJob.Wait[T](Object[] properties)
   at Vestris.VMWareLib.VMWareJob.Wait[T](Object[] properties, Int32 timeoutInSeconds)
   at Vestris.VMWareLib.VMWareVirtualMachine.RunProgramInGuest(String guestProgramName, String commandLineArgs, Int32 options, Int32 timeoutInSeconds)
   at Vestris.VMWareLib.VMWareVirtualMachine.RunProgramInGuest(String guestProgramName, String commandLineArgs)
   at RemoteInstall.VMWareMappedVirtualMachine.RunProgramInGuest(String path, String parameters)
   at RemoteInstall.VirtualMachineMsiDeployment.MsiExec(String msiPath, String msiArgs, MsiAction action, String& logfile)
   at RemoteInstall.VirtualMachineMsiDeployment.Install(String& logfile)
   at RemoteInstall.Instance.InstallUninstall(InstanceOptions options)
2: Done after '00:00:02.0781250'

*****************************************************************

Jun 16, 2011 at 1:25 AM
Edited Jun 16, 2011 at 2:42 AM

Does anybody encounter the same issue? I tried the test on two different systems. The results are same and still failed.

I tried installing Sample.msi on two guest os with remoteinstall v1.3.  Both the results are pass at the first time. But after relaunch it, same error appears. Is this caused by dump memory? Switch to remoteinstall v1.2 and V1.1, the case can be reproduced.

Developer
Jun 16, 2011 at 3:20 AM

Hi guibao,

Yes, the timeout settings look ok.

How long does RemoteInstaller.exe run before it fails?

You indicated there is a difference in size of the two Sample.msix.log files generated on the guest oses.

At the time of failure, what are the contents of the smaller-sized Sample.msix.log?  I would think it would indicate the reason of the failure.  Also, does the windows event log indicate any relevant errors or warnings?

After the first test run, can you verify your application is completely uninstalled from the guest os and that no programs or services are running that are associated with your program?

This may be caused by your msi setup installer indicating a file is locked for example.

As a work-around, can you try specifying /pipelineCount:1 as another command line parameter to RemoteInstaller.exe?

This will indicate to only run one test in parallel.

Thank you.

Jun 16, 2011 at 4:08 AM

I'm sorry I didn't save the failed Sample.msix.log. It is only reproduced occasionally. I'm sure I searched out the content through key "error" and "fail". Compare to the normal result, no special error inforamtion was shown. Most of the failed tests will not generate the Sample.msix.log.  When the failed Sample.msix.log is generated again, i will paste it here.

I get the Sample.msi file from the released remoteintstaller package. it only takes a little time to install and uninstall the sample.msi. when fail, I check the control panel of the guest os, the sample.msi package is removed. Check the event viewer on the local system and guestos, no relatived error was found.

 If add the /p:1 parameter. results are pass.