Starting with opatch versions 126.96.36.199.54 and 10.2.0.x a new "validation phase" has been added to OPatch. Other terms
This phase is executed at the end of the patch install and validates several parts of the apply:
Verifying that patch ID is in Oracle Home inventory.
Verifying copy files.
Verifying jar files.
Verifying archive files
When installing an interim patch (including Critical Patch Updates) the validation phase fails to recognize a successful install.
You may receive the following errors:
Verifying archive files.
Archive failed: failed to update
"<ORACLE_HOME>/lib/libserver9.a" with updated
There are 1 issues patching static library in Oracle Home.
FILE PROBLEM: some files are not patched.
OPATCH_JAVA_ERROR: Patch was not successfully applied.
Verification of the patch failed.
ERROR: OPatch failed as verification of the patch failed.
Also the following will be seen in earlier versions of 10.2.x OPatch:
FINEST:CheckSum of 2 streams are 594889758 and 594889552
FINE: 2 files are identical? FALSE
INFO: Archive failed: failed to update
"<ORACLE_HOME>/lib/libserver10.a" with updated
opatch OPATCH_JAVA_ERROR archive Reason and Prerequisites
The problem has been seen so far on Solaris 10. Solution
Solaris 10 appears to be adding a few bytes to the size of the objects being archived into libraries. Due to that, the validation phase is failing during the archive file validation because the size of the newly installed object does not match the size of the object in the patch.
The file in the patch :
ls -l <stage>/5369855/files/lib/libserver9.a/qksop.o
31424 Feb 16 03:52 5369855/files/lib/libserver9.a/qksop.o
The archived file :
ar -vt $ORACLE_HOME/lib/libserver9.a |grep qksop
31428 Feb 16 03:52 2007 qksop.o
The problem was reported in the Oracle bug 4967132.
To avoid the opatch to abort you need to use the newest opatch version(>=56) available in the SAP Service Marketplace - see the note 629588.
With the new version of opatch the validation will just raise a warning as follows:
WARNING: Verification of 'ar' actions failed. This is a known issue for this platform. Please check the note 353150.1 on Metalink for the process to manually verify the files.
To manually verify the files follow the steps below:
1. Locate the current apply log. Log files are located in:
Pre-10.2 : $ORACLE_HOME/.patch_storage/<patchnumber>
10.2 : $ORACLE_HOME/cfgtoollogs/opatch
2. Locate the diagnostic records
"grep" the Apply log for "file name".
% grep "file name" Apply_5369855_01-16-2007_10-54-34.log
The records returned will be one record for each Source file and one record for each Destination file.
Source file name is : /<stage>/5369855/files/lib/libserver9.a/qksop.o, size is : 31424
Destination file name(from OracleHome) is : /ORACLE_HOME/.patch_storage/verify/lib/libserver9.a/qksop.o, size is : 31428
3. Compare the Source and Destination file sizes. The Source should be 4 bytes smaller. If all Source files are 4 bytes smaller than their respective Destination files, then the patch has successfully applied.