JDK-7108484 : MSI installer failed to extract the binaries and installation would leave system JRE.
  • Type: Bug
  • Component: install
  • Sub-Component: install
  • Affected Version: 6u29
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2011-11-04
  • Updated: 2013-06-06
  • Resolved: 2013-06-06
Related Reports
Relates :  
Description
J2SE Version (please include all output from java -version flag):
6u29

Does this problem occur on J2SE 1.4.x, 1.5 or 6?  Yes / No (pick one)
No

Operating System Configuration Information (be specific):
Windows 


Bug Description:

There are a number of issues with the installer.

Use the MSI file extracted from the binary to upgrade Java on multiple machines. 
And find that is in about 10% of the installations, the MSI installer would 
failed to extract the binaries and the installation would leave System JRE.

Attached a number of relevant MSI installer logs that demonstrate the problem, 
and most of this seems to have caused by failure to delete the msvcr71.dll 
as well as Java Quickstart process is not being killed by the installer. 

Not an expert in Windows MSI technology but our Windows Engineering team has 
suggested that instead of using your own unzipping code all the extraction 
should be done by MSI engine, which would allow atomic rollback as well 
as installation after reboot.
OS = Windows XP (JQS is N/A for any other supported platform).

Duplicate of 6786492.

Comments
These enhancements will be provided by Enterprise/MSI compliance project.
06-06-2013

EVALUATION There is at least one RFE in JDK related to having a true MSI-based distribution for enterprises. It is not something we can change in JRE 6 or 7. Our custom files in use detection is not invoked during a silent install. The fix for 6786492 still exists in http://opengrok.ie.oracle.com:8080/opengrok/xref/6-rev-latest/install/make/installer/bundles/windows/ishield/jre/jre/ServiceControl.idt I'm not sure what else our JRE MSI can do to stop JQS and make sure msvcr71.dll is unlocked when the MSI is doing an upgrade. Even if our custom files in use detection was changed to support silent installs, it has no logic other than to report an error.
25-05-2012

WORK AROUND - stop / disable JQS, or - uninstall previous JRE and make sure Install directory (C:\Program Files\Java\jre6) is empty
25-05-2012

EVALUATION This issue appears to be caused by JQS not stopping: MSI (s) (B0:1C) [02:15:33:566]: 1 application(s) had been reported to have files in use. Info 1603.The file C:\Program Files\Java\jre6\bin\jqs.exe is being held in use by the following process: Name: jqs, ID: 1880, Window Title: (not determined yet). Close that application and retry. MSI (c) (C4:9C) [02:15:33:566]: File In Use: -jqs- Window could not be found. Process ID: 1880 MSI (c) (C4:9C) [02:15:33:566]: No window with title could be found for FilesInUse Looking at the registration log, looks like JavaHome could not be ascertained: -- Start in UninstallJavaRegSet -- ERROR: FindJavaHome Open(version) failed. ERROR: FindJavaHome Open(version) failed. JQS ERROR: Cannot find JavaHome for 1.6 This was also a problem in 6u14, and the customer was given a workaround. Will the workaround in 6786492 suffice for this customer?
08-11-2011