Patch Name: PHKL_9569 Patch Description: s700 10.20 NFS and VxFS (JFS) hangs, NFS write-gathering Creation Date: 96/12/18 Post Date: 96/12/26 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: JournalFS.VXFS-BASE-KRN OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_9569: HANG PHKL_8294: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_9569 Symptoms: PHKL_9569: This patch addresses 2 distinct VxFS (JFS) symptoms: - When trying to take a file-system snapshot, the mount command could fail with the following error message: # mount -F vxfs -o snapof=/dev/vg00/vxonline \ /dev/vg00/vxbackup /vxbackup vxfs mount: /dev/vg00/vxbackup is already mounted, /vxbackup is busy, or allowable number of mount points exceeded - The system could hang when manipulating directories. PHKL_9153: Add write-gathering support for NFS servers. PHKL_8294: When multiple nfsd's access the same file simultaneously, they hang in a deadlock. Defect Description: PHKL_9569: This patch fixes two different VxFS (JFS) defects: - A snapshot could not be mounted if a process was waiting arbitrarily long for a file record lock. An application using lockf() or fcntl() to get file record locks, and holding the locks for a long period of time, could prevent from mounting a file-system snapshot. - The VxFS rmdir(2) routine could run into a deadlock situation where the directory would be kept locked. Processes attempting to access the locked directory would then wait forever, and eventually this could cause the entire system to hang. PHKL_9153: Added code to update the v_last_fsync field on the vnode. This field will be used by rfs_write to implement write gathering on nfs servers. Patch PHKL_9155/56, which updates rfs_write(), must also be applied for this patch to be effective. If both patches are applied, server throughput should increase for write-intensive workloads, and I/O traffic to disk should decrease. PHKL_8294: ufs_bread(), called by nfs server routines, prematurely unlocks the inode while the caller still owns the buffer. This opens a window for another process to grab the inode lock. Deadlock occurs when the process owning the buffer tries to access the inode again and the process holding the inode waits for the buffer to be available before it can release the inode lock. The fix is to delay the inode unlocking in ufs_bread() until the inode is no longer needed. SR: 1653194555 5003348425 4701341669 5003330910 Patch Files: /usr/conf/lib/libhp-ux.a(vfs.o) /usr/conf/lib/libufs.a(ufs_vnops.o) /usr/conf/lib/libvxfs_base.a(vx_vnops.o) what(1) Output: /usr/conf/lib/libhp-ux.a(vfs.o): vfs.c $Date: 96/11/22 17:33:45 $ $Revision: 1.25.98.11 $ PATCH_10.20 (PHKL_9153) /usr/conf/lib/libufs.a(ufs_vnops.o): ufs_vnops.c $Date: 96/11/22 17:34:38 $ $Revision: 1.30.98.17 $ PATCH_10.20 (PHKL_9153) /usr/conf/lib/libvxfs_base.a(vx_vnops.o): vx_vnops.c $Date: 96/12/18 20:20:04 $ $Revision: 1.8.98.22 $ PATCH_10.20 (PHKL_9569) cksum(1) Output: 1148147061 20444 /usr/conf/lib/libhp-ux.a(vfs.o) 3381483645 33300 /usr/conf/lib/libufs.a(ufs_vnops.o) 290998955 26168 /usr/conf/lib/libvxfs_base.a(vx_vnops.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_8294 PHKL_9153 Equivalent Patches: PHKL_9570: s800: 10.20 Patch Package Size: 140 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_9569 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_9569.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_9569.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_9569. 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_9569.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_9569.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None