Patch Name: PHCO_12666 Patch Description: s700_800 10.20 LVM commands cumulative patch Creation Date: 97/09/25 Post Date: 97/10/07 Repost: 97/11/27 -When the LVM.LVM-MIRROR-RUN fileset is installed and PHCO_12666 is applied /sbin/lvchange and /usr/sbin/lvchange are removed from the LVM.LVM-MIRROR-RUN fileset file list. -The PHCO_12666 postinstall script removed the /sbin/lvchange and /usr/sbin/lvchange file definitions from the IPD (Installed Product Database) for LVM.LVM-MIRROR-RUN when that fileset was available. -The postinstall script was modified to not remove the file information from the LVM.LVM-MIRROR-RUN IPD entry. -Since the actual patch bits were not modified there is no need for systems having installed the patch to update to this reposted version. -Patch depots holding this patch should be updated so that future patch swinstall(1M)'s will yield correct swlist(1M) results. Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: LVM.LVM-RUN LVM.LVM-ENG-A-MAN Automatic Reboot?: No Status: General Superseded Critical: Yes PHCO_12666: CORRUPTION Path Name: /hp-ux_patches/s700_800/10.X/PHCO_12666 Symptoms: PHCO_12666: System is suffering from data corruption. Intermittently a block associated with a particular file at the same offset is being corrupted. PHCO_10964: The lvlnboot command had some problems introduced in 10.20 when separate root/boot functionality was introduced. The symptoms range from lvlnboot -v not being able to find the boot volume after a vgreduce/vgextend to not being able to boot the volume group. One bug resulted in lvlnboot always using a pvkey of 0, causing failures if vgreduce/vgextend was performed on the first pvol. Another bug had lvlnboot assuming that the first pvol with an updated BDRA in /etc/lvmtab (for the root vg) contained the boot and root lvols, which isn't necessarily so. These bugs can result in unbootable systems if lvlnboot -R is performed since lvlnboot -R will corrupt the LABEL file in these cases. PHCO_10826: The LVM relocation policy has two settings; "y", mark a bad block in the bad block directory and relocate the block to an alternate location, and "n", mark a bad block in the bad block directory but do not relocate the block to a new location. This causes problems for intelligent disks like EMC Symmetrix disks which can "repair" themselves. The bad block directory entry prevents access to the good, repaired data on disk. PHCO_10048: A non-root process can gain access to a root shell. PHCO_9213: Several customers using LVM have expressed the desire to have LVM return application I/O's with an I/O error status rather than hanging onto them, when a Logical Volume is powerfailed. PHCO_8871: This patch provides new usage string for the vgchange command; Also new error messages are added to the message catalog to inform user that LVM does not support software mirroring in a cluster environment with more than 2 nodes configured. PHCO_8626: Modify LVM library routine to fix the following problem: The tm_year field of the tm structure returned by the localtime() library call was assumed to contain the last 2 digits of the year. But it really contains the number of years from 1900. This was corrected by replacing "tm_year" by "tm_year%100". PHCO_8207: This patch fixes two different problems: "panic lv_activatevg: num_pvols" After vgcfgrestore'ing to ALL of the current PVs in a VG, on next full activation the system can panic if the VG is setup such that the PVs are NOT sequentially allocated within the VGDA. The problem is with vgcfgbackup command which doesn't write a valid lvmconf file when there are missing PVs in a VG. vgimport -s -m xxx would not work with >255 pvs on a system. PHCO_7980: This patch added a new option "-R" to vgcfgrestore command to force restoring configuration data when there are physical volume mismatch between the kernel and the backup file due to missing pvlinks. Defect Description: PHCO_12666: The vgcreate and vgextend command were modified to reject the operation if the PV to be added/extended had bad block alternate allocated. A new option "-f" is added to these two commands to allow the command to continue if users choose to ignore the warning. Also, vgcfgrestore command was modified to reject restoring LVM meta-data if bad block alternates were found inside the user data area. A new option "-F" was added to this command to allow the restore operation to continue if users choose to ignore the warning. PHCO_10964: Rewrote getbootvol() to search for boot lvol on pvols containing root lvols, if they exist, or to search all pvols. Added the new routines getrootpvols() and getbootlabel(). PHCO_10826: A new option was added to the -r flag of the lvchange and lvcreate commands. This option is -r N (making the total acceptable values of -r "ynN") which means, do not mark any bad blocks in this LV in the bad block directory, and also do not relocate any bad blocks. All LVs created on EMC Symmetrix disks should be configured with this option. PHCO_10048: A check was added to the LVM main module to make sure each in-coming parameter have size within the maximum length allowed. PHCO_9213: This change supports a new lvchange command line option "-t" which allows the administrator the option to limit the time LVM holds I/O to be retried on logical volumes when disks are powerfailed. PHCO_8871: This patch provides new usage string for the vgchange command; Also new error messages are added to the message catalog to inform user that LVM does not support software mirroring in a cluster environment with more than 2 nodes configured. PHCO_8626: Modify LVM library routine to fix the following problem: The tm_year field of the tm structure returned by the localtime() library call was assumed to contain the last 2 digits of the year. But it really contains the number of years from 1900. This was corrected by replacing "tm_year" by "tm_year%100". PHCO_8207: This patch fixes two different problems: Fix a problem in vgcfgbackup command to backup all PV structures on the disk. Don't try to calculate how many PV needed to be backed up, because PVs in the VG might not necessary contigeous. Modified code in vgimport command to allocate a bigger array to hold pvnames and pvdata. PHCO_7980: The vgcfgrestore command normally refuses to restore configuration data when there are physical volume mismatch between the kernel and the backup file. The following message will be displayed to inform user on the problem: "Mismatch between the backup file and the running kernel: Kernel indicates X disks for /dev/vgname, /etc/lvmconf/vgname indicates Y disks. Cannot proceed with the restoration. Deactivate the Volume Group and try again." SR: 4701352278 4701346494 4701334698 4701334847 4701335935 1653175737 4701332106 5003325159 1653194696 1653221895 Patch Files: /usr/lib/nls/msg/C/lvm.cat /usr/newconfig/sbin/lvchange.mir /usr/newconfig/usr/sbin/lvchange.mir /sbin/lvchange /usr/sbin/lvchange /usr/share/man/man1m.Z/vgchange.1m /usr/share/man/man1m.Z/vgexport.1m /usr/share/man/man1m.Z/vgimport.1m /usr/share/man/man1m.Z/lvchange.1m /usr/share/man/man1m.Z/lvcreate.1m /usr/share/man/man1m.Z/lvlnboot.1m /usr/share/man/man1m.Z/vgcreate.1m /usr/share/man/man1m.Z/vgextend.1m /usr/share/man/man1m.Z/vgcfgrestor.1m what(1) Output: /usr/lib/nls/msg/C/lvm.cat: None /usr/newconfig/sbin/lvchange.mir: $Revision: 78.57.1.3.2.24 $ MIRROR PRODUCT PATCH/10.20:PHCO_8764 libc.a_ID@@/main/r10dav/libc_d av/libc_dav_cpe/2 /ux/libc/libs/libc/archive_pa1/libc.a_ID Oct 2 1996 10:35:25 PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvmo ve.o sdstolvm.o vgcfgbackup.o vgcfgrestore.o vgchange.o vgcreate.o vgdisplay.o vgexport. o vgextend.o vgimport.o vgreduce.o vgremove. o vgscan.o lvchange_m.o lvcreate_m.o lvexten d_m.o lvmerge_m.o lvmmain_m.o lvreduce_m.o l vsplit_m.o lvsync_m.o nomwcsyncd_m.o vgsync_ m.o hpux_rel_m.o 97/09/25 /usr/newconfig/usr/sbin/lvchange.mir: $Revision: 78.57.1.3.2.24 $ MIRROR PRODUCT PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvmo ve.o sdstolvm.o vgcfgbackup.o vgcfgrestore.o vgchange.o vgcreate.o vgdisplay.o vgexport. o vgextend.o vgimport.o vgreduce.o vgremove. o vgscan.o lvchange_m.o lvcreate_m.o lvexten d_m.o lvmerge_m.o lvmmain_m.o lvreduce_m.o l vsplit_m.o lvsync_m.o nomwcsyncd_m.o vgsync_ m.o hpux_rel_m.o 97/09/25 /sbin/lvchange: $Revision: 78.57.1.3.2.24 $ PATCH/10.20:PHCO_8764 libc.a_ID@@/main/r10dav/libc_d av/libc_dav_cpe/2 /ux/libc/libs/libc/archive_pa1/libc.a_ID Oct 2 1996 10:35:25 PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvmo ve.o sdstolvm.o vgcfgbackup.o vgcfgrestore.o vgchange.o vgcreate.o vgdisplay.o vgexport. o vgextend.o vgimport.o vgreduce.o vgremove. o vgscan.o lvchange.o lvcreate.o lvextend.o lvmerge.o lvmmain.o lvreduce.o lvsplit.o lvs ync.o nomwcsyncd.o vgsync.o hpux_rel.o 97/09 /25 /usr/sbin/lvchange: $Revision: 78.57.1.3.2.24 $ PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvmo ve.o sdstolvm.o vgcfgbackup.o vgcfgrestore.o vgchange.o vgcreate.o vgdisplay.o vgexport. o vgextend.o vgimport.o vgreduce.o vgremove. o vgscan.o lvchange.o lvcreate.o lvextend.o lvmerge.o lvmmain.o lvreduce.o lvsplit.o lvs ync.o nomwcsyncd.o vgsync.o hpux_rel.o 97/09 /25 /usr/share/man/man1m.Z/vgchange.1m: None /usr/share/man/man1m.Z/vgexport.1m: None /usr/share/man/man1m.Z/vgimport.1m: None /usr/share/man/man1m.Z/lvchange.1m: None /usr/share/man/man1m.Z/lvcreate.1m: None /usr/share/man/man1m.Z/lvlnboot.1m: None /usr/share/man/man1m.Z/vgcreate.1m: None /usr/share/man/man1m.Z/vgextend.1m: None /usr/share/man/man1m.Z/vgcfgrestor.1m: None cksum(1) Output: 1311065424 38174 /usr/lib/nls/msg/C/lvm.cat 3749508210 659456 /usr/newconfig/sbin/lvchange.mir 2676710431 421888 /usr/newconfig/usr/sbin/lvchange.mir 114446773 643072 /sbin/lvchange 1603550047 405504 /usr/sbin/lvchange 1599083671 6328 /usr/share/man/man1m.Z/vgchange.1m 2132892705 2413 /usr/share/man/man1m.Z/vgexport.1m 1662821571 2711 /usr/share/man/man1m.Z/vgimport.1m 1048591626 4322 /usr/share/man/man1m.Z/lvchange.1m 2098980169 5317 /usr/share/man/man1m.Z/lvcreate.1m 2986066627 6442 /usr/share/man/man1m.Z/lvlnboot.1m 2662975317 4297 /usr/share/man/man1m.Z/vgcreate.1m 4147130308 3307 /usr/share/man/man1m.Z/vgextend.1m 2984567698 2656 /usr/share/man/man1m.Z/vgcfgrestor.1m Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_11085 s800: 10.20: PHKL_11086 Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_7980 PHCO_8207 PHCO_8626 PHCO_8871 PHCO_9213 PHCO_10048 PHCO_10826 PHCO_10964 Equivalent Patches: None Patch Package Size: 2230 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 PHCO_12666 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_12666.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/PHCO_12666.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/PHCO_12666. 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 PHCO_12666.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/PHCO_12666.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None