Patch Name: PHKL_7474 Patch Description: s700 10.01 patch for vfork() and spinlock panics Creation Date: 96/05/08 Post Date: 96/05/09 Hardware Platforms - OS Releases: s700: 10.01 Products: N/A Filesets: OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_7474: PANIC PHKL_5824: PANIC Path Name: /hp-ux_patches/s700/10.X/PHKL_7474 Symptoms: PHKL_7474: Under a lot of stress, with vfork() being used extensively, the system panics with the message: panic: vas cnt 0, but still pointing to pregions. PHKL_5824: This patch fixes a panic "wait_for_lock_spinner: Already own this lock!" The panic only occurs on MP systems. The stack trace looks like this: panic+0x1c wait_for_lock_spinner+0x30 wait_for_lock_4way+0x2c sl_retry+0x18 inferior+0x30 ttiocom+0xf48 pty1_ioctl+0x13c ufs_ioctl+0xec vno_ioctl+0x13c ioctl+0x378 Defect Description: PHKL_7474: The defect is due to a race in freeproc(). This happens when a process does a vfork(), and the process and the child exit, without the process waiting for the child. In such a case, the processes's parent will try to reap the process. Meanwhile, since the child is an orphaned zombie, the init process tries to reap the child. This results in the init process and the processes's parent trying to free the same vas twice. PHKL_5824: The root cause is a bug in MP locking where the process management code attempts to get a lock that it already owns. The fix was to allow for nesting of the locking code. SR: 1653134304 5000715524 Patch Files: /usr/conf/lib/libhp-ux.a(pm_proc.o) what(1) Output: /usr/conf/lib/libhp-ux.a(pm_proc.o): pm_proc.c $Date: 96/05/07 17:30:09 $ $Revision: 1.8. 72.36 $ PATCH_10.01 (PHKL_7474) cksum(1) Output: 258330677 11164 /usr/conf/lib/libhp-ux.a(pm_proc.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_5824 Equivalent Patches: PHKL_7476: s700: 10.10 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_7474 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_7474.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHKL_7474.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. The cluster clients must be shut down as described in step 5b. By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_7474. 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_7474.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_7474.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None