Thursday, December 19, 2013

Different types of Patch Conflicts - Superset/Subset/Duplicate/Bug/File





Different types of Patch Conflicts - Superset/Subset/Duplicate/Bug/File

Superset
If all the bugs fixed by a patch which is already installed in the Oracle Home are also fixed by the patch to be applied, then the patch to be applied is considered a superset of the patch already applied.
Example:
  • Patch A, which is already installed in the Oracle home, fixed bugs 1, 2, and 3
  • Patch B,which is to be installed, fixes bugs 1, 2, 3, and 4.
  • Patch B is considered a superset of Patch A.
Result: it is not considered as an error situation. OPatch removes the subset patches from the Oracle Home and applies the new patch.

Subset
If all the bugs fixed by the patch being installed are fixed in a patch already installed in the Oracle Home, the patch being installed is a subset.

Example:
  • Patch A, which is already installed in the Oracle home, fixed bugs 1, 2 and 3
  • Patch B, which is to be installed, fixes bugs 1 and 2.
  • Patch B is a subset of Patch A
Result: it is not considered as an error situation. Patch B will not be installed and reported as a subset to Patch A

Duplicate
If a patch is installed and it is reinstalled, it is considered a duplicate
Example:
  • Patch A, which is already installed in the Oracle home, fixed bugs 1, 2 and 3
  • Patch A is reinstalled
 Results: If -skip_duplicate is included in the apply command, OPatch will skip the duplicate.  If not set, OPatch will rollback Patch A and reapply it

Bug Conflict
If a patch already installed in the Oracle Home has updated an object which the patch being installed also updates, the patch being installed is in Conflict with the patch already installed.
Example:
  • Patch A, which is already installed in the Oracle home, updates aaa.o, bbb.o and ccc.o in libserver10.a
  • Patch B, which is to be installed, updates aaa.o and ddd.o in libserver10.a
  • Patch B is in conflict with Patch A because they both update object aaa.o in libserver10.a
Result: OPatch reports Patch B is in conflict with Patch A and recommends an SR be filed requesting a merge of Patch A and Patch B created.  If the option to continue the installation is selected, Patch A will be rolled back and Patch B will be installed.  The bugs fixed in Patch A will no longer be fixed.

File Conflict
If a patch already installed in the Oracle Home has updated files which the patch being installed also updates, the patch being installed is in File Conflict with the patch already installed.
Example:
  • Patch A, which is already installed in the Oracle home, updates ins_rdbms.mk and env_rdbms.mk
  • Patch B, which is to be installed, updates ins_rdbms.mk, env_rdbms.mk and ins_sqlplus.mk
  • Patch B is in conflict with Patch A because they both update ins_rdbms.mk and env_rdbms.mk
Result: OPatch reports Patch B is in conflict with Patch A and recommends an SR be filed requesting a merge of Patch A and Patch B created.  If the option to continue the installation is selected, Patch A will be rolled back and Patch B will be installed.  The bugs fixed in Patch A will no longer be fixed. 

Attention 
It may happen that opatch returns a confusing output such as
"..is a  bug superset of patch .......but is not a file superset."
ex.:
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./13343461
.................................................................................................
Given patch "13343461" is a bug superset of patch "12419384" but is not a file superset.
 
The "is not a file superset" can be just ignored and will be fixed in later OPatch versions

No comments:

Post a Comment