Patch Name: PHNE_10515 Patch Description: s700_800 10.20 NFS/NIS cumulative megapatch Creation Date: 97/04/10 Post Date: 97/04/30 Warning: 97/08/27 - This Critical Warning has been issued by HP. - PHNE_10515 introduces a problem with rpc.lockd, which handles file locking across NFS. With PHNE_10515 installed, a file can remain in a locked state after rpc.lockd should have unlocked the file. The result is that the file will not be able to be locked by any other process, potentially hanging the process that is attempting to lock the file. - Since the major changes between PHNE_10515 and the preceding patch deal with rpc.lockd, the patch is being recalled since the problem that is introduced is potentially more serious than the problems that are corrected. - PHNE_10515 should be removed from any system that uses applications utilize file locking across NFS. If you are unsure, it is best to remove the patch. - Patch PHNE_9465 will be re-released until a replacement patch is available. Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: NFS.NFS-CORE NFS.NFS-SERVER NFS.NFS-CLIENT NFS.NIS-CLIENT NFS.NIS-SERVER NFS.NFS-ENG-A-MAN Automatic Reboot?: Yes Status: General Superseded With Warnings Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHNE_10515 Symptoms: PHNE_10515: 1. rpc.lockd: rpc.lockd forwards unlock to kernel when no match exists in queue. Cause was Unlock range passed into kernel by rpc.lockd via nfs_fcntl() call was incorrect. Read Locks are now examined for overlapping regions and non-overlapping regions are deleted selectively in the kernel. When a unlock rqst with range offset=0 and len=0 from a client is received at LOCKD ,LOCKD will now examine if the client had any NFS locks on the file and selectively delete kernel locks held by that client. 5003355784/INDaa26432 Ksh hangs when $HOME is nfs mounted and HISTFILE is under $HOME. This defect is discussed in an earlier patch,but an additional problem due to too frequent retransmits has been fixed. This caused rpc.lockd to invalidate cache entries more often than required. A timestamp has been added to struct reclock which keeps track of the time the request got queued up in the retransmit queue. This timestamp is used in nlm_call() to prevent retransmits of that request from occurring more frequently than 10 secs. INDaa25087 2. rpc.yppasswdd Rpc.yppasswdd when started from the command line with Sun options (nogecos, nosh, nosingle,nopw) did not handle these properly. Since HP does not support these options they were never activated. However, Sun systems do use them and if they are given to an HP machine they should handle them correctly. The options now give the correct response but are still not yet supported fully. PHNE_9465: exports.4: 1. Exports man page comments cause exportfs to use them as illegal hostnames. Also has incorrect aononymous information. exportfs.1m: 1. Exportfs man page has wrong information for anonymous access defaults. secure_rpc.3c: 1. Get_myaddress() call has wrong information on man page on what it acually does. rpc.lockd: 1. Enhance lockd logging of duplicate messages and correct hang problem. pcnfsd: 1. Doesn't work correctly with wlogin() changes ypxfr: 1. Ypxfr doesn't tell user that it is retrying ypxfr if ypxfrd is not found. PHNE_8310: automount: 1. Automount cannot correlate entries in log file to entries in syslog.log because of missing timestamps. rpc.rquotad: 1. rquotad doesn't support JFS rpc.lockd: 1.Logging of unnecessary messages to log file rpc.statd: 1. Possible mem leak problem. rpc.yppasswdd: 1. rpc.yppasswdd fails to rename mnttab if /tmp is on a seperate partition. rpc.mountd: 1. mount daemon runs from non-priveleged ports. exportfs: 1. Hostname containing the string "rw" is erroneously flagged as a mutually exclusive error when the host is also tagged as -ro. rpc.pcnfsd: 1. Enhanced pcnfsd logging in wtmp file to include ip and system name of caller. makedbm: 1. Makedbm now issues an error if the hash algorithm is exceeded. ypserv: 1. NIS returns wrong nextkey when concurrent access is allowed to maps. ypwhich: 1. ypwhich fails connection on X.25 interface. Defect Description: PHNE_10515: 1. rpc.lockd forwards unlock to kernel when no match exists in queue 2. Rcp.yppasswdd doesn't handle unsupported functions properly. PHNE_9465: 1. Exports file allows comments which are causing exportfs to parse as hotnames. 2. Get_myaddress man page has wrong information 3. Exportfs man page does not reflect uid changes to user nobody and anonymous access. if ypxfrd is not available. 5. Rpc.pcnfsd has problem with wlogin() when the server cannot resolve the client hostname. PHNE_8310: 1. Get_myaddress routine in ypwhich fails if X.25 is the only interface configured. 2. Enhancement request to log authentication info to wtmp file. 3. Makedbm wouldn't run on certain S800's due to compilation error. 4. rpc.rquotad doesn't do JFS systems. 5. rpc.mountd default was to run from non-priveledged ports. 6. rpc.yppasswdd daemon would return errors if temp file was on seperate partition from root rile. SR: 5003287649 5003323980 1653155622 1653153593 5003306993 1653146357 4701314765 5003283846 5003273565 5003282038 5003291245 1653154476 5003299255 5003293001 5003290833 5003301564 4701314765 1653159087 1653183277 5003335984 5003349878 5003355784 Patch Files: /usr/sbin/automount /usr/sbin/rpc.mountd /usr/sbin/rpc.lockd /usr/sbin/rpc.statd /usr/sbin/exportfs /usr/sbin/ypxfr /usr/lib/netsvc/yp/ypserv /usr/lib/netsvc/yp/rpc.yppasswdd /usr/sbin/rpc.rexd /usr/sbin/rpc.rquotad /usr/sbin/rpc.pcnfsd /usr/sbin/makedbm /usr/bin/ypwhich /usr/share/man/man1m.Z/exportfs.1m /usr/share/man/man4.Z/exports.4 /usr/share/man/man3.Z/secure_rpc.3c what(1) Output: /usr/share/man/man1m.Z/exportfs.1m: None /usr/share/man/man4.Z/exports.4: None /usr/share/man/man3.Z/secure_rpc.3c: None /usr/sbin/automount: automount: PHNE_8310 10.20 $Revision: 1.11.114. 5 $ $Date: 96/02/15 10:47:16 $ /usr/sbin/rpc.mountd: PHNE_8310 10.2 rpc.mountd: $Revision: 1.80.114.3 $ $Date: 96/05/08 16:27:07 $ issubdir.c 1.2 90/07/23 4.1NFSSRC Copyr 1990 Su n Micro /usr/sbin/rpc.lockd: rpc.lockd: $Revision: 1.37.114.8 $ $Date: 97/04 /14 12:58:47 $ PHNE_10515 prot_pnlm.c 1.rb5 86/09/24 Copyr 1986 Sun Micro prot_msg.c 1.3.rb 86/09/24 Copyr 1984 Sun Micro PATCH_10.X rpc.lockd: $Revision: 1.20.114.4 $ $Date: 97/04/14 11:26:23 $ PHNE_6121 prot_proc.c 1.9.rb 86/09/24 Copyr 1986 Sun Micro prot_freeall.c 1.1 88/08/05 NFSSRC4.0 1.3 88/02/07 Copyr 1984 Sun Micro prot_share.c 1.1 88/08/05 NFSSRC4.0 1.4 88/08/04 Copyr 1984 Sun Micro RB2 /usr/sbin/rpc.statd: PATCH_10.X rpc.statd: $Revision: 1.19.114.2 $ $Date: 96/02/15 17:17:41 $ PHNE_8310 sm_proc.c : $Revision: 1.11.114.3 $ $Date: 96/03/28 17:25:46 $ PHNE_6444 sm_statd.c: $Revision: 1.21.114.2 $ $Date: 96/02/15 17:03:52 $ PHNE_6444 RB2 /usr/sbin/exportfs: PHNE_8310 10.2 exportfs.c: $Revision: 1.3.114.3 $ $Date: 96/01/16 12:49:22 $ issubdir.c 1.2 90/07/23 4.1NFSSRC Copyr 1990 Su n Micro /usr/sbin/ypxfr: PHNE_9465 ypxfr: $Revision: 1.46.114.3 $ $Dat e: 96/12/09 14:47:1 8 $ /usr/lib/netsvc/yp/ypserv: ypserv.c 1.4 92/06/05 4.1NFSSRC Copyr 1990 Su n Micro ypserv_ancil.c 1.4 90/07/23 4.1NFSSRC Copyr 1990 Su n Micro ypserv_map.c 1.3 92/06/05 4.1NFSSRC Copyr 1990 Su n Micro ypserv_proc.c 1.3 90/07/23 4.1NFSSRC Copyr 1990 Su n Micro yp_cache.c: $Revision: 1.3.114.1 $ $Date: 95/10 /02 18:23:56 $ PHNE_8310 10.20 ypserv_dbmtrak.c 1.1 90/07/24 4.1NFSSRC Copyr 1990 SMI ypserv_net_secure.c 1.2 92/06/05 4.1NFSSRC Copyr 1990 Sun Micro ngethostbyname.c 1.2 92/04/08 4.1NFSSRC /usr/lib/netsvc/yp/rpc.yppasswdd: PHNE_10515 10.2 rpc.yppasswdd: $Revision: 1.50.114. 3 $ $Date: 96/09/23 15:52:17 $ /usr/sbin/rpc.rexd: PHNE_8310 10.20 rexd.c 1.5 92/04/20 4.1NFSSRC Copyr 1990 Sun Micro publickey.c 1.3 90/07/19 4.1NFSSRC Copyr 1990 Su n Micro /usr/sbin/rpc.rquotad: PHNE_8310 10.20 $Revision: 1.9.114.3 $ /usr/sbin/rpc.pcnfsd: rpc.pcnfsd: $Revision: 1.3.114.4 $ $Date: 97/01 /06 15:43:02 $ PHNE_9465 pcnfsd_v2.c 1.6 - rpc.pcnfsd V2.0 (c) 1991 Sun T echnology Enterprises, Inc. /usr/sbin/makedbm: PHNE_8310 10.2 makedbm: $Revision: 1.35.114.2 $ $Dat e: 95/11/20 17:14:58 $ /usr/bin/ypwhich: PHNE_8310 10.20 ypwhich: $Revision: 1.37.114. 1 $ $Date: 95/10/02 18:18:11 $ cksum(1) Output: 3876289999 106496 /usr/sbin/automount 573046536 40960 /usr/sbin/rpc.mountd 1082498574 102400 /usr/sbin/rpc.lockd 1542914344 53248 /usr/sbin/rpc.statd 1004299442 24576 /usr/sbin/exportfs 821998992 49152 /usr/sbin/ypxfr 1002821467 94208 /usr/lib/netsvc/yp/ypserv 2488008112 32768 /usr/lib/netsvc/yp/rpc.yppasswdd 1093860294 86016 /usr/sbin/rpc.rexd 2583859475 20480 /usr/sbin/rpc.rquotad 720388176 53248 /usr/sbin/rpc.pcnfsd 676784799 20480 /usr/sbin/makedbm 4221851490 20480 /usr/bin/ypwhich 4245156863 3425 /usr/share/man/man1m.Z/exportfs.1m 1318220241 3266 /usr/share/man/man4.Z/exports.4 257139511 5514 /usr/share/man/man3.Z/secure_rpc.3c Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_9155 s800: 10.20: PHKL_9156 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_8310 PHNE_9465 Equivalent Patches: None Patch Package Size: 770 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_10515 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_10515.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_10515.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_10515. 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_10515.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_10515.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None