JDK-6963169 : CheckPendingFileRenameOperations. Return value 3 - Installation operation failed
  • Type: Bug
  • Component: install
  • Sub-Component: install
  • Affected Version: 6u18
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: generic
  • Submitted: 2010-06-22
  • Updated: 2013-06-04
  • Resolved: 2010-07-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u20 b76Fixed 7Fixed
Related Reports
Relates :  
Relates :  
Description
Dell PC-OEM is reporting they are having intermittent installation failures when installing the JRE. The issue has been seen with 6u17, 6u18 and 6u20 JRE.

WXP Pro SP3 32 bit
Install Command: jre-6u18-windows-i586.exe /s EULA=1 OEMUPDATE=1 /v\"/qn ADDLOCAL=ALL IEXPLORER=1 NETSCAPE=1 MOZILLA=1 REBOOT=Suppress

Install is done on machines with no prior JRE installed.
Dell says the issue is very intermittent and hard to replicate.
Attached is the zip file that contains log and registry information from the failed installation on 6u18.

This is urgent for Dell wtih 2%-6% failure rate at factory this is seriously impacting Dell's business. They would like this fixed as soon as possible.

Comments
EVALUATION The MSI/OEMUPDATE value in the registry was not set if the JRE was installed using the wrapper.
25-06-2010

EVALUATION If the log file we received matches the actual problem, something has corrupted the "PendingFileRenameOperations" value under HKEY_LOCAL_MACHINE, SYSTEM\CurrentControlSet\Control\Session Manager and made it a REG_SZ instead of a REG_MULTI_SZ.
25-06-2010

SUGGESTED FIX Skip CheckPendingFileRenameOperations action when OEMUPDATE=1
25-06-2010

EVALUATION :: RegOpenKeyEx() Type != REG_MULTI_SZ, Type: 1 in jusched.log tells me that dwRet = RegQueryValueEx( hKey, "PendingFileRenameOperations", NULL, &Type, lpOriginalData, &cbData ); returned Type set to REG_SZ ( 1 ) // Unicode null terminated string instead of REG_MULTI_SZ ( 7 ) // Multiple Unicode strings See http://technet.microsoft.com/en-us/library/cc960241.aspx for information on PendingFileRenameOperations. (The JRE is inspecting this value, but not modifying it directly.) The 1.txt file in the update.zip received yesterday contained: "PendingFileRenameOperations"=hex(7):5c,00,3f,00,3f,00,5c,00,63,00,3a,00,5c,00,\ and would NOT recreate this problem. hex(7) means REG_MULTI_SZ, and a REG_SZ would be displayed like "AUX"="\\DosDevices\\COM1" If the Type returned when querying "PendingFileRenameOperations" is not the expected REG_MULTI_SZ, I think it might be dangerous to fail silently because the JRE installation may not complete properly if the "PendingFileRenameOperations" value is corrupted and cannot be used for JRE files. I think that Dells problem might be that some software installed before Java is corrupting the "PendingFileRenameOperations" value under HKEY_LOCAL_MACHINE, SYSTEM\CurrentControlSet\Control\Session Manager and writing it as a REG_SZ instead of appending to it as REG_MULTI_SZ.
24-06-2010

EVALUATION In a verbose log (/lv jre.log): MainEngineThread is returning 1627 (ERROR_FUNCTION_FAILED) would point to RegQueryValueEx() != ERROR_SUCCESS MainEngineThread is returning 1603 (ERROR_INSTALL_FAILURE) would point to erroring because (Type != REG_MULTI_SZ). like: Action ended 13:27:21: CheckPendingFileRenameOperations. Return value 3. Action ended 13:27:21: INSTALL. Return value 3. MSI (s) (0C:FC) [13:27:21:102]: Note: 1: 1708 MSI (s) (0C:FC) [13:27:21:102]: Product: Java(TM) 6 Update 18 -- Installation operation failed. MSI (s) (0C:FC) [13:27:21:112]: Cleaning up uninstalled install packages, if any exist MSI (s) (0C:FC) [13:27:21:112]: MainEngineThread is returning 1603 MSI (s) (0C:04) [13:27:21:232]: Destroying RemoteAPI object. MSI (s) (0C:D0) [13:27:21:232]: Custom Action Manager thread ending. === Logging stopped: 6/23/2010 13:27:21 === MSI (c) (2C:A0) [13:27:21:242]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1 MSI (c) (2C:A0) [13:27:21:242]: MainEngineThread is returning 1603
23-06-2010

EVALUATION The PendingFileRenameOperations value in the file from Dell is 4,024 bytes. (I currently have a 5,540 byte PendingFileRenameOperations on my XP Pro SP3 machine.) Bill and I could not duplicate error after importing PendingFileRenameOperations value from Dell. Tried with 6u21 and 6u18 with jre-6u18-windows-i586.exe /s EULA=1 OEMUPDATE=1 /v\"/qn ADDLOCAL=ALL IEXPLORER=1 NETSCAPE=1 MOZILLA=1 REBOOT=Suppress If CheckPendingFileRenameOperations was failing because it found INSTALLDIR in the PendingFileRenameOperations value, the MSI log would contain Error 25025: Action start 12:27:06: CheckPendingFileRenameOperations. MSI (s) (40!D0) [12:27:07:546]: Product: Java(TM) 6 Update 18 -- Error 25025. A previous Java uninstallation was never completed. You need to restart your computer before installing Java. Error 25025. A previous Java uninstallation was never completed. You need to restart your computer before installing Java. Action ended 12:27:07: CheckPendingFileRenameOperations. Return value 3. Action ended 12:27:07: INSTALL. Return value 3.
23-06-2010

EVALUATION MSICheckPendingFileRenameOperations() will NOT return an error if HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager or PendingFileRenameOperations does not exist. The function starts with a 3 byte buffer and realloc's the buffer. It can fail WITHOUT throwing an Error 25025 (which I do not see in JRE.log), if - RegQueryValueEx fails on second call - data is not of type REG_MULTI_SZ - GetInstallDirectories() fails
22-06-2010

EVALUATION Seems that they only gave us the HKEY_USERS tree of the registry. We requested this registry info: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
22-06-2010