SAPTechno

Note 1032044 - OPatch Failing in Validation Phase

Header
Version / Date 2 / 2007-02-27
Priority Correction with medium priority
Category Workaround for missing functionality
Primary Component BC-DB-ORA Oracle
Secondary Components BC-DB-ORA-INS Installation SAP System with Oracle

Summary
Symptom

Starting with opatch versions 1.0.0.0.54 and 10.2.0.x a new "validation phase" has been added to OPatch.
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
              "<stage>/5369855/files/lib/libserver9.a/qksop.o"

     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
     "/<stage>/4751931/files/lib/libserver10.a/qccsync.o"

Other terms

opatch OPATCH_JAVA_ERROR archive

Reason and Prerequisites

The problem has been seen so far on Solaris 10.
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.
E.g.
  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.

Solution

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".
       For example:
       % 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.
For example:
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.



Related Notes
640910Problems when using OPatch
629588Current versions of OPatch and OUI