Patch Name: PHNE_12141 Patch Description: s700_800 10.[12]0 bootpd(1M)/DHCP cumulative patch Creation Date: 97/09/15 Post Date: 97/09/17 Repost: 98/04/02 A problem has been discovered with replacement patches PHNE_13648 and PHNE_14472. The bootpd(1M) process can die unexpectedly with signal 10 or signal 11 errors. Patch PHNE_12141 will be re-released until a replacement patch is available. Hardware Platforms - OS Releases: s700: 10.10 10.20 s800: 10.10 10.20 Products: N/A Filesets: InternetSrvcs.INETSVCS-BOOT Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHNE_12141 Symptoms: PHNE_12141: DHCP server sometimes fails to renew an existing lease, especially if client has more than one lease on more than one subnet. DHCP server cannot handle heavy traffic (more than 10 requests per second) due to time spent writing database file /etc/dhcpdb. PHNE_10211: DHCP incorrectly reissues existing leases to new clients DHCP sometimes issues a lease for address 0.0.0.0 bootpd returns incorrect value for bootfile size bootpd dies at debug level 7 PHNE_9139: bootpquery/jetadmin cannot configure a printer. Short leases can get lost if bootpd stays alive a long time (much longer than the lease time). Addresses are not reclaimed properly when the pool group is full. PHNE_7689: If the number of interfaces approaches 10 (or goes over 10), the server will not find some of them. It will then not be able to send boot replies over those unfound interfaces. The auto flag does not work properly with the "to" (time offset) tag. Dynamic bootp clients get a different address for each request, and in the process the /etc/dhcpdb file can get corrupted. (This problem is on 10.10). Defect Description: PHNE_12141: DHCP server will sometimes calculate an internal table offset incorrectly when a single client has more than one address lease in the table. DHCP server writes the entire database file to /etc/dhcpdb on each transaction. When the number of transactions is large (greater than 10 per second) and the number of clients is large (greater than 2000) and the disk is not the fastest in the world (single-ended SCSI-1) and the clients do not implement the exponential timeout and retry scheme required in RFC1531 (Microsoft Win95) then the clients can time out and give up before the DHCPOFFER gets back to them. PHNE_10211: build_offer.c does not return a proper value when the debug level is 1,2, or 3 PHNE_9139: Jetadmin confirms a printer configuration with bootpd by sending out a bootpquery request. This was broken by changes at transport level in HP-UX 10.20. DHCP clients could have their valid leases disappear before the lease expiration time was over if the DHCP server is very busy and stays alive for a long time. Addresses are not reclaimed properly when a pool group is full, and clients that do not use a client-ID could be offered one of these "recycled" addresses but be rejected because the blank client-ID does not match the (non-blank) client-ID of the previous (now expired) lease holder. PHNE_7689: There was a limit on the number of entries that the bootp server would accept in an ioctl call to discover the interfaces on the system. This ioctl returns info on the interfaces on the system, plus all SLIP connections. If the number of interfaces plus SLIP connections approaches 10, this could cause a problem. The time offset problem was caused because the gettimeofday call did not return the timezone information, so a different call is not used. If the tag "to" is used with a value of "auto", then this patch should be used. The previous patch introduced a problem with the handling of dynamic bootp clients, using a bad hash lookup. If the previous patch (PHNE_7020) was used, this patch should replace it, if dynamic bootp clients are allowed. SR: 5003330167 5003335158 5003338111 5003277400 5000715722 5003318659 Patch Files: /usr/lbin/bootpd /usr/sbin/dhcptools /usr/lib/libdhcp.1 what(1) Output: /usr/lbin/bootpd: bootpd 2.4 #1.17.112.7: Wed Jul 30 01:28:36 GMT 1997 Copyright (c) 1988 by Carnegie Mellon Copyright (c) 1995 by Hewlett-Packard bootpd.c: $Revision: 1.28.112.25 $ $Date: 97/07/29 1 8:25:44 $ build_offer.c: write-perf $Revision: 1.1.112.28 $ $D ate: 97/07/29 18:26:01 $ readfile.c: $Header: readfile.c,v 1.9.112.16 97/07/2 9 18:26:27 dalton Exp $ /usr/sbin/dhcptools: None /usr/lib/libdhcp.1: None cksum(1) Output: 556362026 163840 /usr/lbin/bootpd 3806710588 65536 /usr/sbin/dhcptools 839776755 81920 /usr/lib/libdhcp.1 Patch Conflicts: None Patch Dependencies: s700: 10.10: PHNE_6866 s800: 10.10: PHNE_6867 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_7689 PHNE_9139 PHNE_10211 Equivalent Patches: None Patch Package Size: 360 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_12141 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_12141.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_12141.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_12141. 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_12141.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_12141.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None