Patch Name: PHKL_29467 Patch Description: s700_800 11.00 shared lib,bsema waitlist,reactivation Creation Date: 03/07/30 Post Date: 03/09/02 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_29467: HANG PHKL_23853: PANIC HANG CORRUPTION Category Tags: defect_repair general_release critical panic halts_system corruption Path Name: /hp-ux_patches/s700_800/11.X/PHKL_29467 Symptoms: PHKL_29467: ( SR:8606306694 CR:JAGae69728 ) Processes that are deactivated may never be reactivated. This is observed as an application hang, or a process that cannot be killed, and could lead to a system hang. PHKL_23853: (SR: 8606162548 CR: JAGad31864) When under heavy memory/swap pressure, a thread may attempt to lock a beta semaphore it already owns. When this happens, it corrupts the beta semaphore waitlist. Corruption of the beta semaphore waitlist may present itself in several ways. Most often it will be a hung process/thread, but a spinlock deadlock panic or a system hang could occur depending on resources held by the blocked thread. PHKL_19763: ( SR: 8606101746 DTS: JAGab65107 ) Running an executable that was liked with shared libraries under a debugger (e.g. gdb/wdb) may receive a segmentation violation (SIGSEGV). Defect Description: PHKL_29467: ( SR:8606306694 CR:JAGae69728 ) Two defects existed in the self deactivation code. First, a race condition existed between the code that does self deactivation of a process and the code that chooses a process to reactivate. This race condition resulted in process settings that would never pass the reactivation criteria, and thus the deactivated process would never be reactivated. Additionally, the sleep queue lock was not being acquired before attempting to sleep on the deactivation sleep queue, which could result in a missed wakeup. Resolution: The race condition was handled by rechecking the flag status after locks were dropped during self deactivation, and taking appropriate steps to ensure that if the race had occurred the sleep channel was appropriately set to allow process reactivation. Additionally, the deactivation sleep queue is now locked before attempting to sleep on it. PHKL_23853: (SR: 8606162548 CR: JAGad31864) When under heavy memory/swap pressure, a thread may sleep in virtual_fault(). The page may be brought in by another thread while the first thread sleeps, but when the first thread awakes, it does not check to see if the page has been brought in and brings it in again. Resolution: When we must sleep on memory/swap in virtual_fault(), we now check to see if the page was brought in while we slept, and if so, that the vfd and dbd match the original request. PHKL_19763: ( SR: 8606101746 DTS: JAGab65107 ) When a shared library is loaded in the debugger, it is mapped privately. The hardcoded shared quadrant (SR7) in branches may not work since the shared library is now put into the private address space controlled by SR5. During the handling of an instruction page fault, the faulting instruction is checked and has its space id fixed (SR7->SR5) if necessary. After correcting the space, if the instruction is the destination of a BLE, we locate the BLE instruction in memory and patch it for the rest of the execution. However, under certain circumstances we may patch the wrong BLE's. The incorrect space in these BLE's leads to segmentation violation when executed. Resolution: Before patching the BLE, make sure the destination of the BLE instruction is indeed the faulting instruction to avoid patching the wrong code. Enhancement: No SR: 8606101746 8606162548 8606306694 Patch Files: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(vm_fault.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(vm_fault.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(vm_fault.o): vm_fault.c $Date: 2003/07/17 12:56:24 $Revision: r11 ros/8 PATCH_11.00 (PHKL_29467) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(vm_fault.o): vm_fault.c $Date: 2003/07/17 12:56:24 $Revision: r11 ros/8 PATCH_11.00 (PHKL_29467) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 2117618445 15532 /usr/conf/lib/libhp-ux.a(vm_fault.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 318452926 27968 /usr/conf/lib/libhp-ux.a(vm_fault.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 s800: 11.00: PHKL_18543 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_23853 PHKL_19763 Equivalent Patches: None Patch Package Size: 50 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_29467 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_29467.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_29467. 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_29467.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_29467.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_29467.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None