Patch Name: PHKL_8999 Patch Description: s700 10.20 LVM kernel and pstat(2) cumulative patch Creation Date: 96/10/28 Post Date: 96/11/05 Repost: 96/11/19 The patch was modified to supersede patch PHKL_9022, which is included in this patch. Warning: 96/12/13 - This Non-Critical Warning has been issued by HP. The vgdisplay(1M) and vgextend(1M) commands can show incorrect values for the max number of physical extents (PE) per physical volume (PV). The commands execute correctly, it is just the output that is incorrect. The patch will be immediately superseded by PHKL_9529, which corrects the problem. Since only the output of these two commands is incorrect, it is not necessary for PHKL_8999 to be removed if it is currently installed. It is also not critical that PHKL_9529 be installed immediately. Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: LVM.LVM-KRN OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded With Warnings Critical: No (superseded patches were critical) PHKL_8084: ABORT PHKL_8532: CORRUPTION PHKL_7870: PANIC Path Name: /hp-ux_patches/s700/10.X/PHKL_8999 Symptoms: PHKL_8999: Without this patch customers are limited to supporting 2 nodes in a shared environment With this patch customers can now use SLVM in a 4 node cluster Alternate links for devices such as the Nike disk array are now supported in a shared environment PHKL_9022: running strings on a raw sar(1) output file can show some printable strings (sar ignores these). This was not shipped as a separate patch. PHKL_7870: lvreduce(1M) may cause a system panic, if it is used to reduce an lvol which was left inconsistent by a prior LVM operation. lvreduce(1M) could not be used to remove lvols that were somehow corrupted, if it was, the command would cause a system panic. PHKL_8084: LVM may return I/O's with errors instead of sending them to an alternate link. This patch also facilitates using "vgreduce -f" for physical volumes which have alternate links; without this patch "vgreduce -f" is not allowed on LVM disks with alternate links. PHKL_8716: After call to pstat_getmsg(), all accesses to the message queue pstat_getmsg() was called hang. PHKL_8532: System crash dumps are corrupt and unusable. . Defect Description: PHKL_8999: Support for SLVM is currently limited to 2 nodes. This patch will allow SLVM to work in a 4 node cluster. Alternate link support has also been added for SLVM so that devices such as the Nike disk array can now be used in a high availability cluster. PHKL_9022: pstat_dynamic() allocates a buffer but fails to initialize it before using it. Buffer ends up containing some garbage. This is a cosmetic defect only; sar ignores the uninitialized spaces. PHKL_7870: The problem was that the kernel forced a panic whenever any inconsistency was found during an lvreduce. For example, if a logical extent in an lvol referred to a physical extent that was not allocated, it would cause lvreduce(1M) to panic the system. This occured even when the objective was to remove the offending lvol. This is a very rare occurance. PHKL_8084: Without this patch LVM will not retry failed i/os on alternate links unless the error is one that denotes that the device is offline or powerfailed. Other errors, are not retried on an alternate link and may cause LVM to report the error to users applications. Typically, customers with unmirrored lvols using multiported devices like the HP3232 (Nike) disk array would see the problem when an EIO error is reported to LVM from the underlying device driver due to a device or driver problem. In this situation LVM would report the EIO to user applications without trying any available alternate link. Another problem this patch fixes allows reducing out physical volumes from a volume group when the device is not available and the device has links, formerly devices with links could not be removed if they were not available. PHKL_8532: Intermittent corrupted dumps on PA-RISC2.0 (PA8000) machines on HP-UX 10.20. PHKL_8716: pstat_msginfo() calls msgconv() to convert the offset into a message queue pointer. msgconv() was changed to not only do the conversion, but to lock the queue and return a pointer to the queue's lock. pstat_msginfo() had not been changed to take into account msgconv()'s new behavior. SR: 4701330647 4701334847 4701335935 4701335497 4701336412 5003323493 5003325506 Patch Files: /usr/conf/lib/libhp-ux.a(cpd.o) /usr/conf/lib/libhp-ux.a(dump.o) /usr/conf/lib/libhp-ux.a(lv_config.o) /usr/conf/lib/libhp-ux.a(lv_lvm.o) /usr/conf/lib/libhp-ux.a(pm_config.o) /usr/conf/lib/libhp-ux.a(pstat.o) /usr/conf/lib/liblvm.a(lv_block.o) /usr/conf/lib/liblvm.a(lv_cluster_lock.o) /usr/conf/lib/liblvm.a(lv_defect.o) /usr/conf/lib/liblvm.a(lv_hp.o) /usr/conf/lib/liblvm.a(lv_ioctls.o) /usr/conf/lib/liblvm.a(lv_kdb.o) /usr/conf/lib/liblvm.a(lv_lvsubr.o) /usr/conf/lib/liblvm.a(lv_malloc.o) /usr/conf/lib/liblvm.a(lv_mircons.o) /usr/conf/lib/liblvm.a(lv_pbuf.o) /usr/conf/lib/liblvm.a(lv_phys.o) /usr/conf/lib/liblvm.a(lv_schedule.o) /usr/conf/lib/liblvm.a(lv_spare.o) /usr/conf/lib/liblvm.a(lv_strategy.o) /usr/conf/lib/liblvm.a(lv_stub.o) /usr/conf/lib/liblvm.a(lv_subr.o) /usr/conf/lib/liblvm.a(lv_syscalls.o) /usr/conf/lib/liblvm.a(lv_vgda.o) /usr/conf/lib/liblvm.a(lv_vgsa.o) /usr/conf/lib/liblvm.a(sh_vgsa.o) /usr/conf/lib/liblvm.a(slvm_comm.o) /usr/conf/lib/liblvm.a(slvm_schedule.o) what(1) Output: /usr/conf/lib/libhp-ux.a(cpd.o): cpd.c $Date: 96/10/26 09:39:05 $ $Revision: 1.9.98.8 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/libhp-ux.a(dump.o): dump.c $Date: 96/10/26 09:49:44 $ $Revision: 1.11.98.6 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/libhp-ux.a(lv_config.o): lv_config.c $Date: 96/10/25 20:52:33 $ $Revision: 1. 13.98.6 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/libhp-ux.a(lv_lvm.o): lv_lvm.c $Date: 96/10/25 21:03:34 $ $Revision: 1.3.9 8.2 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/libhp-ux.a(pm_config.o): pm_config.c $Date: 96/10/26 09:27:58 $ $Revision: 1. 6.98.4 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/libhp-ux.a(pstat.o): pstat.c $Date: 96/10/28 11:20:16 $ $Revision: 1.18.9 8.20 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_block.o): lv_block.c $Date: 96/10/25 20:54:08 $ $Revision: 1.1 3.98.4 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_cluster_lock.o): lv_cluster_lock.c $Date: 96/10/25 16:50:50 $ $Revisi on: 1.10.98.4 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_defect.o): lv_defect.c $Date: 96/10/25 17:01:38 $ $Revision: 1. 16.98.4 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_hp.o): lv_hp.c $Date: 96/10/25 17:01:42 $ $Revision: 1.18.9 8.17 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_ioctls.o): lv_ioctls.c $Date: 96/10/25 17:01:52 $ $Revision: 1. 18.98.13 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_kdb.o): lv_kdb.c $Date: 96/10/25 20:54:10 $ $Revision: 1.9.9 8.3 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_lvsubr.o): lv_lvsubr.c $Date: 96/10/25 17:01:58 $ $Revision: 1.15.98.11 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_malloc.o): lv_malloc.c $Date: 96/10/25 20:55:45 $ $Revision: 1. 11.98.3 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_mircons.o): lv_mircons.c $Date: 96/10/25 17:02:04 $ $Revision: 1 .14.98.5 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_pbuf.o): lv_pbuf.c $Date: 96/10/25 20:54:12 $ $Revision: 1.11 .98.6 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_phys.o): lv_phys.c $Date: 96/10/25 17:02:28 $ $Revision: 1.14 .98.8 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_schedule.o): lv_schedule.c $Date: 96/10/25 17:02:34 $ $Revision: 1.18.98.9 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_spare.o): lv_spare.c $Date: 96/10/28 11:23:00 $ $Revision: 1.3 .98.4 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_strategy.o): lv_strategy.c $Date: 96/10/25 17:02:40 $ $Revision: 1.14.98.5 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_stub.o): lv_stub.c $Date: 96/10/25 20:54:05 $ $Revision: 1.13 .98.2 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_subr.o): lv_subr.c $Date: 96/10/25 17:02:45 $ $Revision: 1.18 .98.6 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_syscalls.o): lv_syscalls.c $Date: 96/10/25 17:02:53 $ $Revision: 1.14.98.7 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_vgda.o): lv_vgda.c $Date: 96/10/25 17:03:01 $ $Revision: 1.18 .98.3 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(lv_vgsa.o): lv_vgsa.c $Date: 96/10/25 17:03:05 $ $Revision: 1.14 .98.6 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(sh_vgsa.o): sh_vgsa.c $Date: 96/10/25 17:03:23 $ $Revision: 1.3 .98.7 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(slvm_comm.o): slvm_comm.c $Date: 96/10/25 17:03:40 $ $Revision: 1. 3.98.4 $ PATCH_10.20 (PHKL_8999) /usr/conf/lib/liblvm.a(slvm_schedule.o): slvm_schedule.c $Date: 96/10/25 17:03:49 $ $Revision : 1.3.98.6 $ PATCH_10.20 (PHKL_8999) cksum(1) Output: 4114346575 11604 /usr/conf/lib/libhp-ux.a(cpd.o) 797819625 12752 /usr/conf/lib/libhp-ux.a(dump.o) 3609837110 26628 /usr/conf/lib/libhp-ux.a(lv_config.o) 3955047993 156556 /usr/conf/lib/libhp-ux.a(lv_lvm.o) 17394889 5308 /usr/conf/lib/libhp-ux.a(pm_config.o) 943711055 23736 /usr/conf/lib/libhp-ux.a(pstat.o) 2908410957 2624 /usr/conf/lib/liblvm.a(lv_block.o) 3171795420 9956 /usr/conf/lib/liblvm.a(lv_cluster_lock.o) 896200314 12464 /usr/conf/lib/liblvm.a(lv_defect.o) 3870153707 83464 /usr/conf/lib/liblvm.a(lv_hp.o) 2942067638 31660 /usr/conf/lib/liblvm.a(lv_ioctls.o) 3467347777 728 /usr/conf/lib/liblvm.a(lv_kdb.o) 4044751006 34636 /usr/conf/lib/liblvm.a(lv_lvsubr.o) 71576499 2544 /usr/conf/lib/liblvm.a(lv_malloc.o) 833269564 17552 /usr/conf/lib/liblvm.a(lv_mircons.o) 311558564 6568 /usr/conf/lib/liblvm.a(lv_pbuf.o) 2234699407 7796 /usr/conf/lib/liblvm.a(lv_phys.o) 1099440773 26352 /usr/conf/lib/liblvm.a(lv_schedule.o) 2221436812 36328 /usr/conf/lib/liblvm.a(lv_spare.o) 2895670417 7128 /usr/conf/lib/liblvm.a(lv_strategy.o) 4115391771 732 /usr/conf/lib/liblvm.a(lv_stub.o) 492882945 10056 /usr/conf/lib/liblvm.a(lv_subr.o) 1066182273 13520 /usr/conf/lib/liblvm.a(lv_syscalls.o) 4142623297 9100 /usr/conf/lib/liblvm.a(lv_vgda.o) 3239541967 12592 /usr/conf/lib/liblvm.a(lv_vgsa.o) 3517786406 41964 /usr/conf/lib/liblvm.a(sh_vgsa.o) 2159002800 27264 /usr/conf/lib/liblvm.a(slvm_comm.o) 4188283521 6724 /usr/conf/lib/liblvm.a(slvm_schedule.o) Patch Conflicts: None Patch Dependencies: s700: 10.20: PHCO_8871 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_9022 PHKL_7870 PHKL_8084 PHKL_8532 PHKL_8716 Equivalent Patches: PHKL_8172: s800: 10.20 Patch Package Size: 710 Kbytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHKL_8999 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_8999.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHKL_8999.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_8999. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_8999.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_8999.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: Due to the number of objects in this patch, the customization phase of the update may take more than 10 minutes. During that time the system will not appear to make forward progress, but it will actually be installing the objects.