Patch-ID# 100320-01 Keywords: nets, deletes, snap, user, add Synopsis: SunOS4.0.2: Snap has problems adding or deleting users on large networks Date: 18-Jun-91 SunOS release: SunOS 4.0.2 Unbundled Product: Unbundled Release: Topic: Snap BugId's fixed with this patch: 1034627 Architectures for which this patch is available: sun386 Patches which may conflict with this patch:|>filled in by the find_conflict program<| Obsoleted by: Problem Description: The fix for this requires a new libezdb.1.0. The fix here corrects the problem of snap incorrectly reporting that the add user operation has failed. The cause of the bug was due to an insufficient timeout between SNAP and the NIS master. This timeout (5 minutes) would occur on large networks with many NIS slaves and big NIS maps. For sites in which the timeout is insufficient, an internal variable can be patched via adb. INSTALL: 1. Make sure snap is not running by exiting the program. 2. Become superuser % su root 3. Remount /usr so it is writable. # mount -o remount,rw /usr 4. Change the current directory to /usr/lib # cd /usr/lib 5. Save the old copy of libezdb.so.1.0 # mv libezdb.so.1.0 libezdb.so.1.0.org 6. Install the libezdb.so.1.0 library in /usr/lib # bar xvf /dev/rfd0c 7. The old and new libraries have the same name (libezdb.so.1.0), so do not be concerned about this. Verify that the library you extracted from the media is correct. # sum libezdb.so.1.0 56791 98 <-- If these numbers don't match what is printed out when you run the sum command, then the library has been corrupted. Do not install the library in this case. You can now start up snap. It will use the new /usr/lib/libezdb.so.1.0. Steps to change the timeout: 1. Make sure snap is not running by exiting the program. 2. Become superuser % su root 3. Remount /usr so it is writable. # mount -o remount,rw /usr 4. Change the current directory to /usr/lib # cd /usr/lib 5. Use adb to increase the amount of time snap waits for the NIS update to complete. # adb -w /usr/lib/libezdb.so.1.0 ezdb_commit_timeout?W $q Note that the value must be specified as a hex value, in seconds. For example, ezdb_commit_timeout?W 0x12c # sets timeout to 300 seconds (5 min) ezdb_commit_timeout?W 0x258 # sets timeout to 600 seconds (10 min) ezdb_commit_timeout?W 0x384 # sets timeout to 900 seconds (15 min) To print the value in decimal ezdb_commit_timeout?D Note: The timeout has not been tested beyond 15 minutes. Although the number is limited to 32 bits, there's no way we can tell what else might break if values greater than 0x384 are used. The testing was not extensive, so we can't guarantee that even 15 minutes is a safe maximum. Use large values with caution.