Patch Name: PHNE_13668 Patch Description: s700 10.20 NFS Kernel General Release & Performance Patch Creation Date: 97/12/23 Post Date: 97/12/29 Warning: 98/01/14 - This Critical Warning has been issued by HP. - PHNE_13668 introduces a problem whereby processes performing a filesystem command like ls(1) on a NFS-mounted filesystem will hang. - The patch should be immediately removed from any system having it installed. - The previous patch PHNE_12427 will be re-released till a new replacement patch addressing the above depicted problem becomes available. - PHNE_13668 should be removed from any depot holding it. Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded With Warnings Critical: Yes PHNE_13668: HANG PHNE_13235: PANIC CORRUPTION Panic encountered in nfs_prealloc() Corruption encountered with retransmissions PHNE_12427: HANG Hang encountered with exportfs command PHNE_11386: HANG Hang encountered in NFS IO PHNE_11008: CORRUPTION PANIC Overwritten rnode error in do_bio() Rename of jfs file system from PCNFS causes panic Data page fault in ckuwakeup() PHKL_8544: HANG Path Name: /hp-ux_patches/s700/10.X/PHNE_13668 Symptoms: PHNE_13668: Client IO from root is denied across an NFS mount point PHNE_13235: 1. JFS Servers with NFS clients may see poor performance when doing large file transfers across NFS 2. When using swap across an NFS mount, and the mounted disk becomes full, the system may panic. 3. Data corruption may occur when a transmission errors on a crowded network force retransmissions. PHNE_12427: The exportfs -u command hangs. PHNE_11386: Hang when doing IO across an NFS mount PHNE_11008: 1. Some instances of NFS writes (such as cp from an NFS client) may complete successfully even when errors occur. 2. Renaming a VxFS file to another VxFS from a PCNFS client causes a panic. 3. Disabling anonymous access is not recognized by PCNFS clients, allowing them to run as a priviledged user. 4. Data page faults caused in the client 5. Directories in an NFS mounted file system are created with 000 permissions value. PHKL_9155: 1. Add write-gathering support for NFS servers. 2. The length of a timeout for an NFS request may become extremely long (on the order of minutes). PHKL_8544: 1. Data page fault in an MP environment due to synchronization problems with the client's biod's. 2. A panic within kernel RPC (in svc_getreqset) in an MP environment is generated due to another synchronization problem. 3. System hangs caused in large systems. Defect Description: PHNE_13668: The NFS client prevents root from opening a file on the server. It will allow file creation, but not IO to an existing file. PHNE_13235: 1. NFS Clients may send serial IO requests out of order, causing performance problems for JFS on the Server. 2. NFS writes to a full disk used as a swap device will return an error which results in a call to panic() from nfs_prealloc(). 3. When retransmitting, the XID may not be properly reinitialized, allowing data corruption in the form of null-valued blocks of 8192 bytes (or less). PHNE_12427: The reference count of the exported entry is not managed correctly, and may remain greater than 0 when unused. PHNE_11386: Hang in clnt_kudp.o PHNE_11008: 1. Error codes kept in the rnode for an NFS client's file may get overwritten, and therefore not reported back to the caller when the file is closed. 2. The NFS server renaming procedures do not check for differing VxFS file systems when asking for a rename, which will cause a panic down in VxFS. 3. The server authorization program does not properly check for anonymous access when user IDs of -2 are used. 4. The netisr callout function did not protect against a race condition. 5. The system does not initialize the vnode attributes when it sees a file size which is too large for the 10.20 file system, and returns an error. The server is making the directory anyway, with uninitialized (000) attributes. PHKL_9155: 1. NFS write performance can be improved by doing gather writes at the server. This patch implements the NFS portion of gather writes. 2. The maximum timeout values defined in RPC were very long, and neither RPC nor NFS values matched that of SUN. PHKL_8544: 1. The kernel's biod support code did not sufficently protect against MP race conditions. 2. The RPC processor affinity implementation used by nfsd's was not sufficently protected against MP race conditions. 3. Incorrect usage of the dnlc purge functions. SR: 5003398826 5003352534 5003344226 5003343277 5003340042 5003330894 5003327338 5003326090 5003324657 5003322370 5003321513 5003319665 5003319145 5003279927 5003279091 4701351577 4701341669 4701314302 4701306837 4701306829 1653197632 1653192294 1653150599 1653146886 1653146308 1653134924 1653101337 Patch Files: /usr/conf/lib/libnfs.a(clnt_kudp.o) /usr/conf/lib/libnfs.a(nfs_fcntl.o) /usr/conf/lib/libnfs.a(nfs_server.o) /usr/conf/lib/libnfs.a(nfs_subr.o) /usr/conf/lib/libnfs.a(nfs_vnops.o) /usr/conf/lib/libnfs.a(svc.o) what(1) Output: /usr/conf/lib/libnfs.a(clnt_kudp.o): clnt_kudp.c $Date: 97/12/23 12:25:46 $ $Revision: 1 .9.112.14 $ PATCH_10.20 PHNE_13668 /usr/conf/lib/libnfs.a(nfs_fcntl.o): nfs_fcntl.c $Date: 97/12/23 12:22:29 $ $Revision: 1 .1.112.10 $ PATCH_10.20 PHNE_13668 /usr/conf/lib/libnfs.a(nfs_server.o): nfs_server.c $Date: 97/12/23 12:22:39 $ $Revision: 1.3.112.19 $ PATCH_10.20 PHNE_13668 /usr/conf/lib/libnfs.a(nfs_subr.o): nfs_subr.c $Date: 97/12/23 12:22:43 $ $Revision: 1. 1.112.20 $ PATCH_10.20 PHNE_13668 /usr/conf/lib/libnfs.a(nfs_vnops.o): nfs_vnops.c $Date: 97/12/23 13:01:07 $ $Revision: 1 .3.112.25 $ PATCH_10.20 PHNE_13668 /usr/conf/lib/libnfs.a(svc.o): svc.c $Date: 97/12/23 12:25:38 $ $Revision: 1.8.112 .11 $ PATCH_10.20 PHNE_13668 cksum(1) Output: 989482182 11440 /usr/conf/lib/libnfs.a(clnt_kudp.o) 3786904178 7808 /usr/conf/lib/libnfs.a(nfs_fcntl.o) 3349728119 23896 /usr/conf/lib/libnfs.a(nfs_server.o) 3433649493 21296 /usr/conf/lib/libnfs.a(nfs_subr.o) 1696477818 36116 /usr/conf/lib/libnfs.a(nfs_vnops.o) 2197098418 5828 /usr/conf/lib/libnfs.a(svc.o) Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_12901 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_8544 PHKL_9155 PHNE_11008 PHNE_11386 PHNE_12427 PHNE_13235 Equivalent Patches: PHNE_13669: s800: 10.20 Patch Package Size: 170 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 PHNE_13668 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_13668.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/PHNE_13668.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. By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_13668. 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 PHNE_13668.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/PHNE_13668.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: The following is a useful process for applying more than one patch while only requiring a single reboot after the final patch installation: 1) Get the individual depots over into /tmp. 2) Make a new directory to contain the set of patches: mkdir /tmp/DEPOT # For example 3) For each patch "PHKL_xxxx": swcopy -s /tmp/PHKL_xxxx.depot \* @ /tmp/DEPOT 4) swinstall -x match_target=true -x autoreboot=true \ -s /tmp/DEPOT