Performing a patchrm may fail when there is insufficient space under "/tmp/" or "/var/"
(Doc ID 1019137.1)
Last updated on AUGUST 27, 2019
Solaris Operating System - Version 8 6/00 U1 and later All Platforms
When there is insufficient space under the /tmp or /var directories, the patchrm command may silently fail. Since the back-out packages will either be corrupt or deleted during operation, subsequent invocations of /usr/sbin/patchrm against the same patch will also fail.
If there also exist non-global zones (e.g. on Solaris 10), this problem can cause inconsistencies in terms of patching levels between all zones (the global and non-global zones).
An example of this problem is given below:
# df -k /var Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0t3d0s3 480943 430026 50917 90% /var # # patchrm 120272-01 Validating patches... ... Checking installed patches... Backing out patch 120272-01... Pkgadd failed. See /var/tmp/120272-01.log.7375 for details Patchrm is terminating. WARNING: patchrm returned <7> for global zone Done! Removing patches from non-global zones Removing patches from zone myzone Removing patch 120272-01... Done! Checking installed patches... Backing out patch 120272-01... Patch 120272-01 has been backed out. # # echo $? 1 # # cat /var/tmp/120272-01.log.7375 This appears to be an attempt to install the same architecture and version of a package which is already installed. This installation will attempt to overwrite this package. cpio: Cannot write "reloc/usr/sfw/lib/sparcv9/libnetsnmpmibs.a", errno 28, No space left on device cpio: Cannot write "reloc/usr/sfw/lib/sparcv9/libnetsnmpmibs.so.5.0.9", errno 28, No space left on device cpio: Cannot write "reloc/usr/sfw/lib/sparcv9/libseaExtensions.so", errno 28, No space left on device cpio: Cannot write "reloc/usr/sfw/lib/sparcv9/libseaProxy.so", errno 28, No space left on device cpio: Cannot write "reloc/usr/sfw/sbin/snmpd", errno 28, No space left on device cpio: Cannot write "reloc/usr/sfw/sbin/snmptrapd", errno 28, No space left on device 47901 blocks 6 error(s) pkgadd: ERROR: attempt to process datastream failed - process failed, exit code 6 pkgadd: ERROR: unable to unpack datastream Installation of failed (internal error). No changes were made to the system.
If one checks the patch level afterwards, you will find:
- 120272-01 is removed in the non-global zones
- 120272-01 is not removed in the global zone. Furthermore, running /usr/sbin/patchrm again with the "-G" option also fails even when there is sufficient space under "/tmp/" or "/var/". This is because the back-out packages no longer exist.
# df -k /var Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0t3d0s3 480943 349340 131603 73% /var patchrm -G 120272-01 Validating patches... Loading patches installed on the system... Done! Checking patches that you specified for removal. Done! Approved patches will be removed in this order. 120272-01 Checking installed patches... Cannot find the backout packages for 120272-01 at none.120272-01 cannot be backed out. Patchrm is terminating. WARNING: patchrm returned <4>
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.