Patch Name: PHKL_28842 Patch Description: s700_800 11.11 lofs_mount Creation Date: 03/04/14 Post Date: 03/04/22 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_28842: HANG Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_28842 Symptoms: PHKL_28842: ( SR:8606295017 CR:JAGae58714 ) System hang will be experienced by using LOFS mount, where the mount directory is a softlink to a special directory as shown in the following example: mkdir /special_dir ln -s /special_dir /mnt mount -F lofs /special_dir /mnt The hang will occur gradually on accessing the LOFS mount directory using some commands like ls(1), bdf(1M), umount(1M), etc. A situation will result where the system cannot be accessed by telnet(1) and cannot be logged in through the console; however, the system might respond to ping(1M). The stack trace of a typical hung process will look like the following: preArbitration+0x2d4 wait_for_lock+0x120 sl_retry+0x1c lookuppn+0x2cc lookupname+0x40 chdirec_seg+0x24 chdirec+0x14 chdir+0x34 syscall+0x204 syscallinit+0x554 Defect Description: PHKL_28842: ( SR:8606295017 CR:JAGae58714 ) The LOFS mount routine does not check if the vnode for the special directory is the same as the vnode for the mount directory before performing the mount operation. This creates the same LOFS root vnode as the covered vnode of the mount point and thereby creating a loop in the pathname lookup routine while trying to access this filesystem. This can cause a contention on vfs lock for other processes and eventually a system hang. Resolution: The LOFS mount routine was modified to check if the vnode for the special directory is the same as the vnode for the mount directory. If it is the same, the mount operation is failed, thus preventing the creation of indefinite loops in LOFS. Enhancement: No SR: 8606295017 Patch Files: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/liblofs.a(lo_vfsops.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/liblofs.a(lo_vfsops.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/liblofs.a(lo_vfsops.o): lo_vfsops.c $Date: 2003/03/12 01:09:10 $Revision: r1 1.11/1 PATCH_11.11 (PHKL_28842) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/liblofs.a(lo_vfsops.o): lo_vfsops.c $Date: 2003/03/12 01:09:10 $Revision: r1 1.11/1 PATCH_11.11 (PHKL_28842) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 85871441 3780 /usr/conf/lib/liblofs.a(lo_vfsops.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 1175605234 9144 /usr/conf/lib/liblofs.a(lo_vfsops.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None Patch Package Size: 40 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_28842 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_28842.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_28842. 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_28842.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_28842.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_28842.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None