Patch Name: PHKL_25031 Patch Description: s700_800 11.04 (VVOS) semaphore panic cumulative patch Creation Date: 01/08/29 Post Date: 01/09/10 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_25031: PANIC Based on HP-UX Patch PHKL_22799: PANIC PHKL_18751: HANG Based on HP-UX Patch PHKL_13121: HANG heavy user of POSIX named semaphores Category Tags: defect_repair general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_25031 Symptoms: PHKL_25031: Ported HP-UX patch PHKL_22799 to VVOS Based on HP-UX patch PHKL_22799: (SR:8606165035 CR:JAGad34332) An application program using sem_post() panics the system with message "panic: Data page fault". PHKL_18751: Ported HP-UX patch PHKL_14762 to VVOS Based on HP-UX patch PHKL_14762: The previous patch has been recut to include compile-based performance tuning. There is no functional change in this patch. Based on HP-UX patch PHKL_13121: Heavy use of POSIX named semaphores (sem_init, sem_open, sem_getvalue, etc.) can hang the system. The system must be under a heavy load to encounter this defect. Defect Description: PHKL_25031: Ported HP-UX patch PHKL_22799 to VVOS Based on HP-UX patch PHKL_22799: (SR:8606165035 CR:JAGad34332) The system tries to grap a semaphore before it is fully created because of a locking problem resulting in accessing a NULL pointer that causes the system to panic. Resolution: The fix is to ensure that the semaphore will not be accessed before it is fully created. Setting the semaphore pointer to NULL right before we releases the lock before copy_out() will fix the problem. If the value of semaphore is NULL, do not give up the semaphore in ksem_getlock() which is called by all the semaphore functions. PHKL_18751: Ported HP-UX patch PHKL_14762 to VVOS Based on HP-UX patch PHKL_14762: None Based on HP-UX patch PHKL_13121: ksem_read() calls ksem_getlock() to acquire a lock, then subsequently calls copyout() which can potentially block. Another caller of ksem_getlock() will loop until it can get the same lock. If the lock holder is scheduled to run on the same processor as the thread who is looping, a deadlock will result. Alternatively, on a uniprocessor system there is only one processor available for execution, so the deadlock is certain if contention arises. SR: 4701374587 8606165035 Patch Files: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(pm_rtsem.o) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(pm_rtsem.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(pm_rtsem.o): pm_rtsem.c $Date: 2000/11/21 17:04:54 $Revision: r11 ros/3 PATCH_11.00 (PHKL_22799) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(pm_rtsem.o): pm_rtsem.c $Date: 2000/11/21 17:04:54 $Revision: r11 ros/3 PATCH_11.00 (PHKL_22799) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 4091966855 11700 /usr/conf/lib/libhp-ux.a(pm_rtsem.o) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 3903444291 32672 /usr/conf/lib/libhp-ux.a(pm_rtsem.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_18751 Equivalent Patches: PHKL_22799: s700: 11.00 s800: 11.00 Patch Package Size: 70 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_25031 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_25031.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_25031. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHKL_25031.depot 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_25031.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_25031.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_25031.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None