Patch Name: PHNE_14472 Patch Description: s700_800 10.[12]0 bootpd(1M)/DHCP cumulative patch Creation Date: 98/03/09 Post Date: 98/03/10 Warning: 98/04/02 - This Critical Warning has been issued by HP. - Patch PHNE_13648 introduced a problem that can cause bootpd(1M) to die with signal 10 or signal 11. Patch PHNE_14472 was created to correct the problem, but it does not. - This problem has only been experienced by a small number of customers. Many customers are not experiencing problems with the patch. Those that are experiencing the problem see it immediately after installing the patch. - Patch PHNE_12141 will be re-released until a replacement patch is available. It is recommended that customers experiencing problems with bootpd(1M) should remove PHNE_14472 and install PHNE_12141. If problems have not been experienced since installing PHNE_14472, then it is unlikely that the problem will occur and PHNE_14472 does not need to be removed. 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 With Warnings Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHNE_14472 Symptoms: PHNE_14472: DHCP server dies unexpectedly PHNE_13648: DHCP server sometimes fails to update the dhcpdb file correctly. DHCP server sometimes gives out duplicate addresses. 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_14472: Server dies on signal 10 PHNE_13648: The database file dhcpdb in the server is not updated when the client id field is used. Because of corrupted lease time entry in the dhcpdb, when bootpd wakes up and reads the dhcpdb, the internal data structure gets corrupted and hence it gives out duplicate ip addresses. 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: 5003401000 5003330167 5003335158 5003338111 5003277400 5000715722 5003318659 Patch Files: /usr/lbin/bootpd /usr/sbin/dhcptools /usr/lib/libdhcp.1 what(1) Output: /usr/lbin/bootpd: usr/lbin/bootpd: bootpd 2.4 #1.17.112.7: Mon Mar 9 23:10:57 GMT 1998 Copyright (c) 1988 by Carnegie Mellon Copyright (c) 1995-7 by Hewlett-Packard bootpd.c: $Revision: 1.28.112.28 $ $Date: 98/02/19 1 5:04:50 $ build_offer.c: PHNE_13648 $Revision: 1.1.112.32 $ $D ate: 98/02/19 15:04:39 $ readfile.c experimental: $Revision: 1.9.112.17 $ $Da te: 97/12/23 15:05:48 $ /usr/sbin/dhcptools: None /usr/lib/libdhcp.1: None cksum(1) Output: 926926768 163840 /usr/lbin/bootpd 2863885757 65536 /usr/sbin/dhcptools 443513242 81920 /usr/lib/libdhcp.1 Patch Conflicts: None Patch Dependencies: s700: 10.10: PHNE_13471 s700: 10.20: PHNE_13469 s800: 10.10: PHNE_13470 s800: 10.20: PHNE_13468 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_7689 PHNE_9139 PHNE_10211 PHNE_12141 PHNE_13648 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_14472 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_14472.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_14472.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_14472. 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_14472.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_14472.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: A new field can now be added to /etc/dhcptab to improve the performance of the DHCP server. Using this new feature will delay the writing of the database by a few seconds, and can be used if clients are timing out after 2 or 4 seconds although the DHCP server does eventually respond. This is very popular with large numbers of Win95 clients. The new tag is: dhcpdb-write-perf=N: where N is an integer between 0 and 600. We recommend setting N=5. This is a system-wide feature, so the top of your /etc/dhcptab might look like this: DHCP_SERVER_SETTINGS:\ dhcpdb-write-perf=10: