========================================================================== The checksum's (found through sum -r) of the files that you have received (other than this README) are as follows: 44131 2 patchSG0001145 00315 35 patchSG0001145.eoe1_sw 45044 2 patchSG0001145.idb 54026 6 patchSG0001145.nfs_man 11017 111 patchSG0001145.nfs_sw ========================================================================== - 1 - 1. Patch_SG0001145_Release_Note This release note describes patch SG0001145 to IRIX 5.2. 1.1 Supported_Hardware_Platforms This patch contains bug fixes for all hardware platforms. The software cannot be installed on other configurations. 1.2 Supported_Software_Platforms This patch contains bug fixes for IRIX 5.2 for all hardware platforms. The software cannot be installed on other configurations. 1.3 Bugs_Fixed_by_Patch_SG0001145 This patch contains fixes for the following bugs in IRIX 5.2. Bug numbers from Silicon Graphics bug tracking system are included for reference. o This patch brings the IRIX 5.2 versions of rpc.lockd and rpc.statd up to the stability level of the IRIX 5.3 versions contained in Patch SG0001128. o As assertion failure in rpc.lockd has been corrected. (BUG 265699) o The NLM procedure NLM_TEST has been fixed. Previously, it always returned a system error. (BUG 276896) o rpc.statd(1M) has been corrected to discard hosts for which gethostbyname(3N) fails during the crash notification process. o The internal lock bookkeeping done by rpc.lockd has been reworked to eliminate inconsistencies which result in assertion failures. (BUG 322801) Race conditions involving lock cancels for blocked locks have been corrected. The handling of crash indications has been reworked to ensure the proper release of locks for crashed clients and to eliminate internal inconsistencies. o Under some circumstances, lockd would attempt to respond to a lock request using tcp when it should have used udp. This has been corrected. o Both lockd and statd exhibit a security vulnerability described in CERT VU 15781. Through the SM_MON RPC call, a client could cause system file such as - 2 - /etc/passwd to be deleted. (BUG 340903) o An option has been added to rpc.lockd(1M) to support file locking between UNIX machines and DOS machines running PC-NFS and compatible file sharing utilities. Normally, UNIX and DOS lock requests are both handled by rpc.lockd with seperate-but-equal mechanisms; hence it is possible for a DOS machine and a UNIX machine to both lock the same file. With the new option, rpc.lockd sets an SVID-compatible lock in response to a DOS SHARE requests, so that UNIX clients recognize DOS locks and vice-versa. (RFE 235334) o It was reported that rpc.lockd takes a segmentation fault whenever MS-Mail attempts to perform record locking. (Bug report 240232) o Over time, rpc.lockd will use up all of the entries in its open file table. This is because it uses a field in a lock record after the record has been freed, thus making an invalid entry in the list of locks held on a file. This in turn causes the file to not be closed even though all of the locks have been released. (Bug report 239898) o There is a bug in the internal lock accounting of rpc.lockd which will cause it to loose track of locks and release sysids early (i.e., when locks are still held for the remote process). This causes some locks to never be unlocked, eventually resulting in a hang. This will happen when a remote request is received which will block on a remote lock held by another process/system. rpc.lockd does not properly account for these. It currently does not record such lock requests in the list of outstanding locks which it maintains. (Bug report 239101) o Processes can hang when locking files over NFS. This will occur with two or more processes running on different systems, especially if one is the server. Signals were being unblocked prematurely resulting in SIGCHLD being delivered before rpc.lockd was ready to handle it. Lock recording was done on a per sysid basis when it should have been done on a per file descriptor basis. Debug printing of lock types and RPC status codes was not functioning correctly. (Bug report 238210) o rpc.lockd with IRIX 5.2 NFS (together with Patch 12) does not reuse sysid's in certain cases. This causes the users application to hang when he runs out on the - 3 - server. (Bug report 232090) o The local lock daemon will discard KLM requests when the status monitor cannot be contacted. This causes the user process to hang and the kernel to continue to retry the request. (Bug report 216141) o rpc.lockd has been observed to cause applications to hang on a seemingly random basis. Under certain circumstances, rpc.lockd would not contact the status monitor. This would result in rpc.lockd not being notified of a restart of a remote rpc.lockd. Thus, rpc.lockd would not know to flush its cached client handes for that remote rpc.lockd. A hang results. (Bug report 206436) o The rpc.lockd debug print function pr_oh can cause a core dump from a segmentation fault. This is due to the use of unsigned arithmetic without checking a value to see if it is zero. A dereference on NULL results. (Bug report 205694) o The NFS lock manager does not release sysids until the last lock on a file has been released. It determines whether or not locks are held via the F_RGETLK fcntl(2) command. rpc.lockd uses a timer mechanism to garbage collect its file descriptor and sysid tables. Sysids will never be released if there is one process which acquires a lock and never releases it. (Bug report 195385) 1.4 Subsystems_Included_in_Patch_SG0001145 This patch release includes these subsystems: o patchSG0001145.nfs_man.nfs o patchSG0001145.nfs_sw.nfs 1.5 Installation_Instructions Because you want to install only the patches for problems you have encountered, patch software is not installed by default. After reading the descriptions of the bugs fixed in this patch (see Section 1.3), determine the patches that meet your specific needs. If, after reading Sections 1.1 and 1.2 of these release notes, you are unsure whether your hardware and software meet the requirements for installing a particular patch, run - 4 - inst. Patch software is installed like any other Silicon Graphics software product. Follow the instructions in your Software Installation Administrator's Guide to bring up the miniroot form of the software installation tools. Follow these steps to select a patch for installation: 1. At the Inst>prompt, type install patchSGxxxxxxx where xxxxxxx is the patch number. 2. Select the desired patches for installation. 3. Initiate the installation sequence. Type Inst> go 4. You may find that two patches have been marked as incompatible. If this occurs, you must deselect one of the patches. Inst> keep patchSGxxxxxxx where xxxxxxx is the patch number. 5. After completing the installation process, exit the inst program by typing Inst> quit To remove a patch, use the versions remove command as you would for any other software subsystem. The removal process reinstates the original version of software unless you have specifically removed the patch history from your system. versions remove patchSGxxxxxxx where xxxxxxx is the patch number. To keep a patch but increase your disk space, use the versions removehist command to remove the patch history. versions removehist patchSGxxxxxxx where xxxxxxx is the patch number.