Home | Contact Us | Submit Troubleshooting Info | Search | Help


    Output | Software Solutions | Proofing | Color, Screening and Calibration | Scanning | Digital Photography | Consumables | POS


What do I do if the patch removal fails?


Product

  Prinergy 1.1

Platform

 

Operating system

 


Error

 


Symptoms

 

When removing a patch, errors are reported, e.g. the following is a transcript from a failed attempt at removing a patch. Two files could not be properly restored:

28-Mar-2000 18:08:53 Uninstalling patch Prinergy-1.1p72-x86

28-Mar-2000 18:08:53 Applying patch auto-uninstall steps . . .

28-Mar-2000 18:08:53 Restoring registry value HKEY_LOCAL_MACHINE\SOFTWARE\Creo\FileTransmitter\MaxRetries

28-Mar-2000 18:08:53 Restoring file D:\PRINERGY\AdobeExtreme\bin\supra.exe

28-Mar-2000 18:08:53 Restoring file D:\PRINERGY\AdobeExtreme\bin\supraseq.exe

28-Mar-2000 18:08:53 Restoring file D:\PRINERGY\AdobeExtreme\bin\PNormalizerJTP.exe

28-Mar-2000 18:08:53 Restoring file D:\PRINERGY\AdobeExtreme\bin\nserver.dll

28-Mar-2000 18:08:54 Restoring file D:\PRINERGY\AdobeExtreme\bin\pdf.dll

28-Mar-2000 18:08:54 ERROR: Line 14: ppu.RestoreFile( r"D:\PRINERGY\CreoAraxi\support\patches\installed\Prinergy-1.1p72-x86\uninstall\pdf.dll", r"D:\PRINERGY\AdobeExtreme\bin\pdf.dll" )

28-Mar-2000 18:08:54 ERROR: Exception in process 406, thread 456

Traceback (innermost last):

File "ppuremove.py", line 137, in UninstallPatch

exec( line )

File "<string>", line 1, in ?

None

File "ppuinstall.py", line 671, in RestoreFile

PPUCopyFile( srcpath, target )

File "ppuinstall.py", line 733, in PPUCopyFile

return win32api.CopyFile( srcpath, destpath )

api_error: (32, 'CopyFile', 'The process cannot access the file because\015\012it is being used by another process.')

28-Mar-2000 18:08:54 Restoring file D:\PRINERGY\AdobeExtreme\bin\Resource\IdiomSet\CreoAutoGeometry

28-Mar-2000 18:08:54 Restoring file D:\PRINERGY\AdobeExtreme\bin\CreoStartupNormOnly\ReportMissingElem.PS

28-Mar-2000 18:08:54 Removing file D:\PRINERGY\AdobeExtreme\bin\CreoStartupNormOnly\AdobeOpiHelper.ps

28-Mar-2000 18:08:54 Restoring file D:\PRINERGY\AdobeExtreme\bin\supraassem.exe

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\SupraRIP.exe

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\ps.vm

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\CPSI3011.VM

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\PDFProcSets

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\SCRN.dll

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\CreoScreens\SCRT.dll

28-Mar-2000 18:08:55 Restoring file D:\PRINERGY\AdobeExtreme\bin\CreoScreens\SCST.dll

28-Mar-2000 18:08:56 Restoring file D:\PRINERGY\AdobeExtreme\bin\CreoScreens\CreoScreen.bin

28-Mar-2000 18:09:01 Restoring file D:\PRINERGY\AdobeExtreme\bin\CreoStartupRIPOnly\PsBypassSupport.PS

28-Mar-2000 18:09:02 Restoring file D:\PRINERGY\AdobeExtreme\bin\PPSOutputE.exe

28-Mar-2000 18:09:02 Restoring file D:\PRINERGY\AdobeExtreme\bin\ec.PS3

28-Mar-2000 18:09:02 Restoring file D:\PRINERGY\AdobeExtreme\bin\Epson9000Header.PS

28-Mar-2000 18:09:02 Restoring file D:\PRINERGY\AdobeExtreme\bin\GenericPS3OutHeader.PS

28-Mar-2000 18:09:02 Restoring file D:\PRINERGY\AdobeExtreme\bin\PPlatingE.exe

28-Mar-2000 18:09:04 Restoring file D:\PRINERGY\AdobeExtreme\bin\PGenDevE.exe

28-Mar-2000 18:09:04 Restoring file D:\PRINERGY\AdobeExtreme\bin\PProofingE.exe

28-Mar-2000 18:09:06 Restoring file D:\PRINERGY\AdobeExtreme\bin\PFWK_Dcs.dll

28-Mar-2000 18:09:06 Restoring file D:\PRINERGY\CreoAraxi\bin\PTaskD.exe

28-Mar-2000 18:09:07 Restoring file D:\PRINERGY\CreoAraxi\bin\PDeviceAndServiceD.exe

28-Mar-2000 18:09:07 Restoring file D:\PRINERGY\AdobeExtreme\bin\PCTMTransJTP.exe

28-Mar-2000 18:09:07 Restoring file D:\PRINERGY\CreoAraxi\bin\XDLL.dll

28-Mar-2000 18:09:07 ERROR: Line 64: ppu.RestoreFile( r"D:\PRINERGY\CreoAraxi\support\patches\installed\Prinergy-1.1p72-x86\uninstall\XDLL.dll", r"D:\PRINERGY\CreoAraxi\bin\XDLL.dll" )

28-Mar-2000 18:09:07 ERROR: Exception in process 406, thread 456

Traceback (innermost last):

File "ppuremove.py", line 137, in UninstallPatch

exec( line )

File "<string>", line 1, in ?

None

File "ppuinstall.py", line 671, in RestoreFile

PPUCopyFile( srcpath, target )

File "ppuinstall.py", line 733, in PPUCopyFile

return win32api.CopyFile( srcpath, destpath )

api_error: (32, 'CopyFile', 'The process cannot access the file because\015\012it is being used by another process.')

28-Mar-2000 18:09:07 Restoring file D:\PRINERGY\AdobeExtreme\bin\PCIP3JTP.exe

28-Mar-2000 18:09:08 Restoring file D:\PRINERGY\AdobeExtreme\bin\PCIP3FTPLOG.dll

28-Mar-2000 18:09:08 Restoring file D:\PRINERGY\AdobeExtreme\bin\FileTransmitter.exe

28-Mar-2000 18:09:09 Restoring file D:\PRINERGY\CreoAraxi\etc\hlog.properties

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\AdobeExtreme\bin\Harmony\EpsonCurves.hmy

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\AdobeExtreme\bin\proofer\Epson9000.txt

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\CreoAraxi\Data\ICC-Profiles\Printer\Epson9000\Epson9000.semigloss.icm

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\CreoAraxi\Data\ProcessPlans\ImposedProofOutput\Epson9000\Epson9000\Epson9000.gif

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\CreoAraxi\Data\ProcessPlans\ImposedProofOutput\Epson9000\Epson9000\Epson9000.tpl

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\CreoAraxi\Data\ProcessPlans\ImposedProofOutput\Epson9000\Epson9000.ForProfiling\Epson9000.ForProfiling.gif

28-Mar-2000 18:09:09 Removing file D:\PRINERGY\CreoAraxi\Data\ProcessPlans\ImposedProofOutput\Epson9000\Epson9000.ForProfiling\Epson9000.ForProfiling.tpl

28-Mar-2000 18:09:09 Restoring file D:\PRINERGY\CreoAraxi\bin\araxi.inf

28-Mar-2000 18:09:

09 Executing custom patch uninstall steps . . .

28-Mar-2000 18:09:09 Migrating patch directory . . .

28-Mar-2000 18:09:09 WARNING: Patch Prinergy-1.1p72-x86 uninstallation finished, 2 error(s)

Note the final statement clearly says that two errors occurred. If you failed to notice the errors, did not understand their significance, or simply chose to ignore them and tried to restart the system anyway, the wrong versions of files would still be in the run time system, and most likely you will encounter bizarre failures that could not be otherwise explained.


Cause

  The Prinergy Patch Utilility (PPU) is the standard tool for managing patches to a Prinergy system. Usually we install new patches, but rarely, if ever, remove patches.

Occasionally, there can be problems when installing or removing a patch, and manual intervention may be necessary to recover.

Looking earlier in the transcript, we see that it failed to restore the old versions of pdf.dll and XDLL.DLL because those files were in use by another process. This in itself could be sign that either:

1) PPU did not correctly detect the presence of one or more running Prinergy processes,

2) a relatively new process has been added to the system, which this version of PPU was not yet aware of, or

3) the user chose to ignore PPU's warning that certain processes were running and should be stopped before continuing with patch removal.


Solution

 

You should ALWAYS carefully check the log of actions performed when a patch is installed or removed, and check for any problems that indicate that the patch was not fully installed or removed correctly. If one or more files could not be properly restored when removing a patch, you must:

1) stop the processes that have those files locked and would therefore prevent the file replacement

2) manually repeat those steps that failed, for example, copy the files from the patch backup folder to the target run time directory as the script would normally have done automatically

3) manually update the patch database file to indicate that the patch is no longer installed, if this did not get done automatically.

The script for removing the patch is generated automatically when a patch is installed. It knows what it's installing, and writes the removal script to perform the reverse actions.

For example, for the patch Prinergy-1.1p72-x86, the script would be found as:

%ARAXIHOME%\CreoAraxi\support\patches\installed\Prinergy-1.1p72-x86\uninstall\Prinergy-1.1p72-x86.ppuremove

The script is usually quite straightforward and it should be fairly easy to figure out what files need to be manually copied.

Once a patch is removed, the folder under ...\installed gets moved to ...\removed instead. I'm not really sure why we need to keep these around, but that's what it does. You can't un-remove a patch once it's removed, so it's probably just useless junk taking up space from this point onwards. The patch database is text file with a simple XML format, located in %ARAXIHOME%\CreoAraxi\support\patches\admin\ppu.db

It should be fairly easy to recognize the pattern of "records" for each installed patch, find the entry for the patch that you were trying to remove, and remove those lines of text from the file, for example,

<PATCH NAME="Prinergy-1.1p72-x86">

<DESCRIPTION>This patch updates the system to Extreme 15.103. It also provides a number of fixes for output related issues</DESCRIPTION>

<INSTDATE>Tue Mar 28 12:35:15 2000</INSTDATE>

</PATCH>

so that PPU no longer thinks the patch is installed.

By far, the most common types of actions performed by patches is to perform simple file replacement, but on rare occasions, a patch may also alter registry values, edit the contents of certain files, or even run a bit of SQL to update the Oracle database etc. In the event that any of these kinds of actions failed to get undone when removing the patch, the basic procedure is still the same:

1) remove the condition that interfered with the automatic steps attempted by the script

2) repeat the failed steps by hand to complete the patch removal

3) tidy up the state of the patch database and folders so it looks as if the patch had been automatically and correctly removed.

A future version of PPU may deal more robustly with failure to replace files in use, but it cannot reasonably anticipate every bad thing that could possibly happen, so we'll just have to be prepared to deal with the hopefully rare times it cannot do the job completely automatically.

Permanent fix:


See also

 


Keywords

 

patches, uninstall


Technical contact(s)
 

Simon Chen

Submitted by
 

Date submitted
 


    Copyright © 2005 Creo Inc. All rights reserved. Confidential. Back to top.