Patch Name: PHKL_9361 Patch Description: s700 10.20 VxFS (JFS) cumulative patch Creation Date: 96/11/26 Post Date: 96/12/01 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_9361: PANIC PHKL_8953: HANG PHKL_8331: CORRUPTION Path Name: /hp-ux_patches/s700/10.X/PHKL_9361 Symptoms: PHKL_9361: MP machine used as a nfs client panics with: panic: (display==0xb800, flags==0x0) Data page fault panic stack: crash event was a panic panic+0x10 report_trap_or_int_and_panic+0x8c trap+0xbfc $call_trap+0x20 binvalfree_vfs+0x5c rinval+0x10 nfs_unmount+0x20 umount_vfs+0x5c umount_root+0x20 umount+0x98 syscall+0x1a4 PHKL_8953: The K400 4-way suddenly stopped to work. The user heavily accessed vxfs snapshot filesystem and have done sync's in parallel. We TOC'ed the system. PHKL_8331: Data loss with UFS files using fragments. Defect Description: PHKL_9361: binvalfree_vfs() has a race window where while one process is checking to see if a vnode buffer can be freed, another process dereferences the vnode pointer from the same buffer. The fix is to use a local variable to avoid the MP race. PHKL_8953: The problem is caused by a defect in getnewbuf procedure in vfs_bio.c file. When Vxfs calls getnewbuf() to acquire a buffer, it passes BX_NONBLOCK in bxflags to avoid potential deadlock. However, the getnewbuf() proceeds to call bwrite() to flush the buffer without checking the bxflags when it finds a B_DELWRI buffer. This causes Vxfs with snapshot to hang. The fix for this defect is to make fix for getnewbuf() in file vfs_bio.c. When getnewbuf() ends up grabbing a DELWRI buffer with BX_NONBLOCK, it will release the buffer and return NULL instead of flushing and returning the buffer. PHKL_8331: There was a code path where dirty buffers could possibly be dropped (not flushed) when extending UFS files using fragments. SR: 1653166496 1653192294 4701327338 4701333419 Patch Files: /usr/conf/lib/libhp-ux.a(vfs_bio.o) /usr/conf/lib/libufs.a(ufs_alloc.o) what(1) Output: /usr/conf/lib/libhp-ux.a(vfs_bio.o): vfs_bio.c $Date: 96/11/26 14:50:04 $ $Revision: 1.2 6.98.16 $ PATCH_10.20 (PHKL_9361) /usr/conf/lib/libufs.a(ufs_alloc.o): ufs_alloc.c $Date: 96/08/20 14:18:16 $ $Revision: 1 .38.98.7 $ PATCH_10.20 (PHKL_8331) cksum(1) Output: 2872317730 28360 /usr/conf/lib/libhp-ux.a(vfs_bio.o) 3255850541 17616 /usr/conf/lib/libufs.a(ufs_alloc.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_8331 PHKL_8953 Equivalent Patches: PHKL_9362: s800: 10.20 Patch Package Size: 100 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_9361 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_9361.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_9361.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_9361. 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_9361.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_9361.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None