Patch Name: PHKL_23048 Patch Description: s700_800 11.04 (VVOS) debug shlib;bsema waitlist corruption Creation Date: 01/04/17 Post Date: 01/04/26 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_23048: PANIC CORRUPTION HANG Based on HP-UX Patch PHKL_23853: PANIC CORRUPTION HANG Category Tags: defect_repair general_release critical panic halts_system corruption Path Name: /hp-ux_patches/s700_800/11.X/PHKL_23048 Symptoms: PHKL_23048: Ported HP-UX patch PHKL_23853 to VVOS Based on HP-UX patch 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. Based on HP-UX patch 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_23048: Ported HP-UX patch PHKL_23853 to VVOS Based on HP-UX patch 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. Based on HP-UX patch 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. SR: 8606182268 8606101746 8606162548 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(vm_fault.o) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(vm_fault.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(vm_fault.o): vm_fault.c $Date: 2001/04/04 08:01:46 $Revision: r11 ros/7 PATCH_11.00 (PHKL_23853) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(vm_fault.o): vm_fault.c $Date: 2001/04/04 08:01:46 $Revision: r11 ros/7 PATCH_11.00 (PHKL_23853) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 1506303116 15888 /usr/conf/lib/libhp-ux.a(vm_fault.o) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 3803371761 28936 /usr/conf/lib/libhp-ux.a(vm_fault.o) Patch Conflicts: None Patch Dependencies: s700: 11.04: PHKL_19142 s800: 11.04: PHKL_19142 Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHKL_23853: s700: 11.00 s800: 11.00 Patch Package Size: 80 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_23048 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_23048.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_23048. 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_23048.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_23048.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_23048.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_23048.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch depends on base patch PHKL_19142 For successful installation please insure that PHKL_19142 is already installed, or that PHKL_19142 is included in the same depot with this patch and PHKL_19142 is selected for installation.