Patch Name: PHKL_24188 Patch Description: s700_800 11.11 hang in HFS Creation Date: 01/06/22 Post Date: 01/08/02 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_24188: HANG Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_24188 Symptoms: PHKL_24188: ( SR:8606195340 CR:JAGad64544 ) A hang can occur in HFS due to a deadlock between two threads operating in the same directory. Defect Description: PHKL_24188: ( SR:8606195340 CR:JAGad64544 ) The thread deadlock results when two threads perform the following actions: The first thread is in open() and has locked the directory inode in dirlook_loop(). Then it calls dnlc_purge1() because there are no inodes on the inode free list which subsequently causes the first thread to sleep waiting to lock the device vnode. The second thread is doing a mv of a file in the same directory as the first thread and is in a rename() system call. It locks the device vnode in ufs_rename() and proceeds to sleep waiting for the directory inode held by the first thread. Resolution: Avoid calling dnlc_purge1() in the open() path by verifying the status of inode freelist as soon as we lock the directory inode. If the free list is empty, purge and recover inodes at this point. This will avoid calling dnlc_purge1() further down the open() path. SR: 8606195340 Patch Files: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libufs.a(ufs_dir.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libufs.a(ufs_dir.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libufs.a(ufs_dir.o): ufs_dir.c $Date: 2001/05/22 09:24:23 $Revision: r11. 11/1 PATCH_11.11 (PHKL_24188) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libufs.a(ufs_dir.o): ufs_dir.c $Date: 2001/05/22 09:24:23 $Revision: r11. 11/1 PATCH_11.11 (PHKL_24188) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 3068414711 21000 /usr/conf/lib/libufs.a(ufs_dir.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 1102321183 42752 /usr/conf/lib/libufs.a(ufs_dir.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHKL_24117: s700: 11.00 s800: 11.00 Patch Package Size: 90 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_24188 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_24188.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_24188. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHKL_24188.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_24188.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_24188.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None