Patch Name: PHKL_21004 Patch Description: s700 10.26 select(2) system call cumulative patch Creation Date: 00/04/25 Post Date: 00/05/11 Hardware Platforms - OS Releases: s700: 10.26 Products: N/A Filesets: OS-Core.CORE-KRN BLS.BLS-CORE Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_21004: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_21004 Symptoms: PHKL_21004: After resizing an X client multiple times, the resize border and coordinate box will not disappear and the X window system will become unresponsive. (PHKL_14282) Processes will sleep and never wakup (process appears hung). Note that these are individual processes, and not the entire system. Defect Description: PHKL_21004: Under some conditions on an MP system, the select(2) system call can hang. The problem is a race condition; the data to be selected arrives before select is ready. Select then never sees this data and hangs waiting for it to arrive. (PHKL_14282) The defect was a race between real_sleep and sel_wakeup. A thread that is going to sleep will update it's wchan, put itself on the sleepqueue, and drop the thread lock for signals. It then re-acquires the thread lock and goes to sleep. While the thread lock is "loose", another thread comes through selwakeup to wakeup the "sleepy thread". It assumes that the kt_stat and wchan match, and then ignores the running thread, thinking it has already been woken. The original thread then continues to go to sleep, never to awaken again. Resolution: Port of PHKL_14282 SR: 4701382440 5003343814 Patch Files: /usr/conf/lib/libhp-ux.a(sys_gen.o) /usr/conf/lib/libsec.a(sec_driver.o) /usr/conf/lib/libsec.a(sec_m6locks.o) what(1) Output: /usr/conf/lib/libhp-ux.a(sys_gen.o): 00/04/13 kern/sys/sys_gen.c, hpux, hpux_10.26, ic5eu Revision 1.7 PATCH_10.26 (PHKL_21004) /usr/conf/lib/libsec.a(sec_driver.o): 00/04/24 kern/sec/sec_driver.c, hpux, hpux_10.26, ic 5eu Revision 1.5 PATCH_10.26 (PHKL_21004) /usr/conf/lib/libsec.a(sec_m6locks.o): 00/04/24 kern/sec/sec_m6locks.c, hpux, hpux_10.26, i c5eu Revision 1.3 PATCH_10.26 (PHKL_21004) cksum(1) Output: 395785324 10540 /usr/conf/lib/libhp-ux.a(sys_gen.o) 2781469068 14632 /usr/conf/lib/libsec.a(sec_driver.o) 2699965150 2880 /usr/conf/lib/libsec.a(sec_m6locks.o) Patch Conflicts: None Patch Dependencies: s700: 10.26: PHKL_20471 Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: PHKL_21005: s800: 10.26 PHKL_14282: s700: 10.20 PHKL_14283: s800: 10.20 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_21004 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_21004.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_21004. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_21004.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_21004.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch has a dependence on the kernel patch PHKL_20471. Please ensure that PHKL_20471 is installed before installing this patch.