![]()
Home | Contact Us | Submit Troubleshooting Info | Search | Help
Output | Software Solutions | Proofing | Color, Screening and Calibration | Scanning | Digital Photography | Consumables | POS
|
|
||
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 |
||