System Utilities patchadd(1M) and patchrm(1M) May Fail to Check Patch Dependencies Correctly |
|
| Category : | Availability |
| Release Phase : | Resolved |
| Product : | Solaris 9 Operating System Solaris 10 Operating System Solaris 8 Operating System
|
| Bug Id : | 6295261
5040318
|
| Date of Resolved Release : | 02-JUN-2006
|
Impact
patchadd(1M) and patchrm(1M) use the utilities fgrep(1) and nawk(1). Limitations in these utilities may be encountered when using the patch commands on systems which have experienced extensive patching in the past. The results are unpredictable and may include the following:
- Patches not installing when their dependencies are satisfied
- Patches being installed when their patch dependencies were not satisfied
- Patches getting backed out in the wrong sequence
- Patches not getting backed out
- Patch gets installed. However, a broken patch database file gets created
- Patches not getting installed
Contributing Factors
This issue can occur in the following releases:
SPARC Platform:
x86 Platform:
Note: This issue only impacts systems with more than 500 patches installed. At this time, Solaris 10 is unlikely to experience this issue as there have been insufficient patches released. However, as more patches are released, Solaris 10 may also be impacted.
Symptoms
If the described issue occurs, the following error messages will be seen on the console:
For Solaris 8 and 9:
If the nawk(1) issue occurs, messages similar to the following will be seen:
/usr/bin/nawk: record `108723-01 108725-02 ...' has too many fields
input record number 99
source line number 1
Checking installed patches...
If the fgrep(1) issue occurs, messages similar to the following will be seen:
wordlist too large
Checking installed patches...
In addition the following check can be made to determine if a system is impacted by this issue.
1. If the /var/sadm/patch/.patchDB file is present on the system, back it up using the following command:
# mv /var/sadm/patch/.patchDB /var/sadm/patch/.oldpatchDB
If this file does not exist, go straight to step 2.
2. # patchadd -p | grep -v "^$" | wc -l
# showrev -p | wc -l
If the output from "patchadd" is less than the output from "showrev" then the ".patchDB" file may be broken and there is a possibility that patches have been installed or removed improperly.
Note: The output from the "showrev -p | wc -l" provides the number of patches loaded in the system.
For Solaris 10:
If the fgrep(1) issue occurs, patchadd(1M) of some patches might display the following error message:
wordlist too large
Workaround
To work around the fgrep(1) issue, do the following:
- Backup "/usr/bin/fgrep"
- Create a symbolic link from "/usr/xpg4/bin/fgrep" to "/usr/bin/fgrep"
There is no work around for the nawk(1) issue. Please see the "Resolution" section below.
Note: The recommended solution is to install the patch irrespective of whether the system is affected or not. While installing the patch if you see the nawk/fgrep error messages mentioned above, the patch database is already corrupt.
Resolution
This issue is addressed in the following releases:
SPARC Platform:
x86 Platform:
Modification HistoryDate: 30-JUN-2006
- Updated Symptoms section.
Date: 12-JUL-2006
- Updated the symptoms and contributing factors section.
AttachmentsThis solution has no attachment