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:

  1. Backup "/usr/bin/fgrep"
  2. 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 History


Date: 30-JUN-2006
  • Updated Symptoms section.

Date: 12-JUL-2006
  • Updated the symptoms and contributing factors section.

 




Attachments
This solution has no attachment

 
 
Login Required

You must login and have a valid contract to access Sun's Premium content which includes:

  • Sun Alerts
  • Bugs
  • Patches
  • Solutions
  • White Papers
  • Documentation
  • Support Knowledge

Login Required

You must login and have a valid contract to access Sun's contracted features

Access Legend:

(Login to access)   Sun Contracted Content
(Login to access)   Sun Contracted Feature

Please make use of SunSolve Feedback application by selecting the floating [+] to provide feedback about this specific document.

Search

Article Details
Article ID : 200466
Article Type : Sun Alert
Last reviewed : 2006-08-01
Audience : PUBLIC
Keywords :
Provide feedback  (help)
Page Tools
»  Print This Page
»  Email This Article
»  Bookmark This Article