Patch Name: PHNE_13475 Patch Description: s700 10.00 cumulative ARPA Transport patch Creation Date: 97/12/17 Post Date: 98/01/09 Hardware Platforms - OS Releases: s700: 10.00 Products: N/A Filesets: OS-Core.CORE-KRN Networking.NET-KRN Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_13475: PANIC PHNE_9030: PANIC Path Name: /hp-ux_patches/s700/10.X/PHNE_13475 Symptoms: PHNE_13475: This patch replaces PHNE_9030. See Defect Description PHNE_9030: See Defect Description PHNE_5895: See Defect Description PHNE_5511: See Defect Description Defect Description: PHNE_13475: ( SR number: 5003229229 ) The customer will experience a system hang. On a uniprocessor system, an "ack storm" can be seen using a network analyzer. On an MP system, the storm may be in loopback, so an analyzer will not show anything. If you can get a trace, look for the sending sequence number being less than the receiving sequence number in both directions. This indicates that the two sides of the connection both think they are receiving duplicate packets, and then send immediate acknowlegments, which are also dropped as duplicates, and the cycle repeats. With a loopback connection, look at the two tcp control blocks. snd_nxt on block A will be less than rcv_nxt on block B, and vice versa. ( SR number: 5003247148 ) ( SR not found ) There is a bug in the checksum offload code in the interface between IP and lan6 when trying to do an IP broadcast. Applications that use IP broadcast are LMU and YP. The function broadcast_ippkt() in netinet/if_ether.c is initializing the mbuf->m_len field to 0 before calling the lan6_build_xmit_hdr() function. This latter function expects the m_len field to be non-zero when doing checksum offloading. The function will return EINVAL and not send the IP broadcast. ( SR number: 5003264713 ) The listen socket queue limit is only 20 and should be increased. The system administrator should be able to change the maximum. ( SR number: 5003270058 ) The problem is that removing a route that has an active connection network connection over it can cause a system panic. This has been reproduced on a gateway system (at least 2 network interfaces) that is forwarding packets from one network to the other. This has caused the IP forwarding mechanism to panic and the ARP mechanism to panic. This problem can cause panics elsewhere, too. ( SR not found ) The problem is that exercising Unix domain sockets causes a system panic. Specifically, if one socket working as a server (is "connected to" by a client socket) connects to another socket working as a server, the system panics. ( SR not found ) The problem, as reported by the submitter, is that the system panics with "spin_deadlock_failure". A diagnostic message in the msgbuf is "Trying to get spinlock beta semaphore spinlock when spinlock unp_misc_lock is held." ( SR not found ) The problem is that an illegal reference is made to t_template of the tcpcb after the template has been freed. This is a TCP/IP race condition. ( SR number: 4701303230 ) System paniced after turning networking tracing in a MP system. This type of panic has been duplicated in all 10.X releases. ( SR number: 1653198069 ) System hangs during shutdown in sbdrop. ( SR number: 1653239764 ) If the system is a single processor machine they may see it hang. It will still respond to "ping" but the console and all other activity will stop. If the system is a multiprocessor machine the customer may see that one processor is 100% busy running netisr. The rest of the system will be working OK with the exception of the one processor being out of the picture. Networking may be slow or not working at all. Netstat will show one of this systems IP addresses connected to itsself along with the local and remote port being the same. The state of the socket will be SYN_RCVD. PHNE_9030: ( SR number: 5003342071 ) ping can cause panic. PHNE_5895: ( SR number: 5003274266 ) ARP caches entry with RIF size greater than 18 bytes (8 segments) because TOKEN RING/9000 fails to catch the illegal size and to drop the packet. PHNE_5511: ( SR number: 4701291088 ) IP Broadcasting not working over FDDI results in NIS, LMU/X, and Netware not working over FDDI. SR: 5003229229 5003247148 5003264713 5003270058 4701303230 5003342071 1653198069 1653239764 5003274266 4701291088 Patch Files: /usr/conf/lib/libinet.a(udp_usrreq.o) /usr/conf/lib/libinet.a(tcp_usrreq.o) /usr/conf/lib/libinet.a(tcp_timer.o) /usr/conf/lib/libinet.a(tcp_subr.o) /usr/conf/lib/libinet.a(tcp_input.o) /usr/conf/lib/libinet.a(ip_input.o) /usr/conf/lib/libinet.a(in_pcb.o) /usr/conf/lib/libinet.a(in.o) /usr/conf/lib/libinet.a(if_ether.o) /usr/conf/lib/libnet.a(route.o) /usr/conf/lib/libnet.a(if_ni.o) /usr/conf/lib/libnet.a(if_loop.o) /usr/conf/lib/libuipc.a(uipc_init.o) /usr/conf/lib/libuipc.a(uipc_usrreq.o) /usr/conf/lib/libuipc.a(uipc_socket.o) what(1) Output: /usr/conf/lib/libinet.a(udp_usrreq.o): PHNE_13475 udp_usrreq.c $Revision: 1.4.110.29 $ $Dat e: 97/01/16 10:53:05 $ /usr/conf/lib/libinet.a(tcp_usrreq.o): PHNE_13475 tcp_usrreq.c $Revision: 1.5.110.21 $ $Dat e: 95/03/01 11:45:50 $ /usr/conf/lib/libinet.a(tcp_timer.o): PHNE_13475 tcp_timer.c $Revision: 1.3.110.26 $ /usr/conf/lib/libinet.a(tcp_subr.o): PHNE_13475 tcp_subr.c $Revision: 1.3.110.26 $ $Date: 95/03/01 11:49:02 $ /usr/conf/lib/libinet.a(tcp_input.o): PHNE_13475 tcp_input.c $Revision: 1.6.110.35 $ $Date : 97/12/08 10:59:22 $ /usr/conf/lib/libinet.a(ip_input.o): PHNE_13475 ip_input.c $Revision: 1.3.110.32 $ $Date: 96/11/05 17:01:55 $ /usr/conf/lib/libinet.a(in_pcb.o): PHNE_13475 in_pcb.c $Revision: 1.5.110.24 $ $Date: 9 5/03/14 14:19:06 $ /usr/conf/lib/libinet.a(in.o): PHNE_13475 in.c $Revision: 1.4.110.22 $ $Date: 95/03 /02 11:13:32 $ /usr/conf/lib/libinet.a(if_ether.o): PHNE_13475 if_ether.c $Revision: 1.5.110.35 $ $Date: 95/08/07 12:00:32 $ /usr/conf/lib/libnet.a(route.o): PHNE_13475 route.c $Revision: 1.4.110.18 $ /usr/conf/lib/libnet.a(if_ni.o): PHNE_13475 if_ni.c $Revision: 1.5.110.6 $ $Date: 94/ 07/11 15:58:25 $ /usr/conf/lib/libnet.a(if_loop.o): PHNE_13475 if_loop.c $Revision: 1.3.110.8 $ $Date: 9 4/08/23 11:25:25 $ /usr/conf/lib/libuipc.a(uipc_init.o): FILESET BSDIPC-SOCKET: lib uipc: Version: A.10.00 PHNE_13475 uipc_init.c $Date: 95/08/09 15:50:37 $ $R evision: 1.4.110.4 $ /usr/conf/lib/libuipc.a(uipc_usrreq.o): PHNE_13475 uipc_usrreq.c $Revision: 1.4.110.10 $ /usr/conf/lib/libuipc.a(uipc_socket.o): PHNE_13475 uipc_socket.c $Revision: 1.6.110.26 $ $Da te: 95/06/08 10:21:36 $ cksum(1) Output: 2502529553 17520 /usr/conf/lib/libinet.a(udp_usrreq.o) 1563431663 11608 /usr/conf/lib/libinet.a(tcp_usrreq.o) 400059940 10760 /usr/conf/lib/libinet.a(tcp_timer.o) 1685104208 10760 /usr/conf/lib/libinet.a(tcp_subr.o) 2537687916 21632 /usr/conf/lib/libinet.a(tcp_input.o) 2994326745 17288 /usr/conf/lib/libinet.a(ip_input.o) 1482925962 13580 /usr/conf/lib/libinet.a(in_pcb.o) 2505579490 15136 /usr/conf/lib/libinet.a(in.o) 2648653762 42352 /usr/conf/lib/libinet.a(if_ether.o) 117089521 15724 /usr/conf/lib/libnet.a(route.o) 2737758510 10824 /usr/conf/lib/libnet.a(if_ni.o) 2220621291 5732 /usr/conf/lib/libnet.a(if_loop.o) 4125439451 3492 /usr/conf/lib/libuipc.a(uipc_init.o) 2942816492 12676 /usr/conf/lib/libuipc.a(uipc_usrreq.o) 229212960 21444 /usr/conf/lib/libuipc.a(uipc_socket.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_5511 PHNE_5895 PHNE_9030 Equivalent Patches: None Patch Package Size: 300 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_13475 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_13475.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_13475.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_13475. 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_13475.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_13475.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None