Patch Name: PHNE_7780 Patch Description: s700 10.01 HP-UX OTS C.05.02 cumulative mega patch Creation Date: 96/10/04 Post Date: 96/10/18 Hardware Platforms - OS Releases: s700: 10.01 Products: OTS/9000 C.05.02 Filesets: OTS9000.OTS-KRN,C.05.02 OTS9000.OTS-RUN,C.05.02 OTS9000.OTS-MAN,C.05.02 OTS9000.APLI-PRG,C.05.02 OTS9000.CLNI-PRG,C.05.02 OTS9000.ROSE-PRG,C.05.02 Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHNE_7780: PANIC PHNE_7404: PANIC PHNE_6723: PANIC Path Name: /hp-ux_patches/s700/10.X/PHNE_7780 Symptoms: PHNE_7780: 1. Debug messages such as the following were being logged in syslog vmunix: sapsuf=0 for sapnum 89, returning -61 vmunix: sapsuf=0 for sapnum 70, returning -61 2. User calls ses_uabort_rq in the Session layer API. The call returns successfully, but no user-abort packet is sent out by OTS stack. 3. The retransmission timer doesn't work as expected. 4. MSDSG doesn't work. 5. ots_get_layer_stats does not return 0 when successful. 6. System panicked when it was idling. Panic message: Data page fault 7. System panicked when a FTAM connection is being established. Panic message: INTERNAL ERROR: Illegal RCI operation 8. a) osipdufmt doesn't handle -l option correctly. b) osipdufmt doesn't handle pdus across multiple X.25 packets c) odipdufmt doesn't format RFC1006 traces. 9. a) With multiple X.25 cards configured, no LAN; all cards in both CLNS and CONS subnets and any card's, other than the first's, X.121 address in the ots_dests file, a loopback(transport) test after doing an x25init of all cards will cause a system panic. b) With a single X.25 card configured in a CLNS subnet and no LAN subnet configured, the CLNS X.25 subnet will not work. One will not be able to make connections or transfer data. A simple loopback(transport) test will fail. PHNE_7404: 1. The files OTSconfigSAP and OTSconfigSBN in /var/opt/ots are created by otsstart with global write permission. 2. The commands otsaddis, otsaddroute, and otsdelroute return the k-shell error ksh: syntax error: `else' unexpected 3. If Dart 28 version of X.25 is installed with OTS on an MP system then panics will occur. 4. On MP systems using RFC1006 data may be sent out of order, which manifests itself as data corruption or mysteriously dropping connections. PHNE_6723: 1. User application making a call to ap_snd() will hang. If APRI tracing is turned on, user will find that ai_putmsg() is looping. 2. In an MSDSG configuration NODE(A) <----> NODE(B) <---> NODE(C) Where: NODE(A) is configured as LAN only NODE(B) is configured as an MSDSG relay node and is configured both for X.25 CONS and LAN. NODE(C) is configured for X.25 CONS. When NODE(A) initiates a connection with NODE(C) via MSDSG on NODE(B), sometimes NODE(B) will panic when the connection disconnects. Apparently this problem is limited to situations where NODE(B) is running High Perf X.25. It doesn't seem to happen with Classic X.25. 3. User sees files with names of the form Saannnnn accumulate in /usr/spool/sockets/osi. Where: aa is a string of two alphabetic characters which may be either upper or lower case. nnnnn is a process id number. These files are created by FTAM. 4. OTS osipdufmt does not interpret X.25 nettl traces, no output is generated. 5. A kernel panic happens when no OTS subnets are configured and the user runs otsaddnsap. 6. OTS osidiag "WAN X.25 Tests" display inappropriate NSAP information. When "Connect" is selected, the test displays "x25_calling_nsap" and "x25_called_nsap" values which were choosen by osidiag, but are unlikely to be used in the test. The NSAPs should be set by the user when a "ISO 8878 Encoding" test is run. 7. A ROSE application which calls ap_rcv could go into an infinite loop. 8. Session connection rejects occur if remote vendors protocol supplies a TSDU Max Size other then NULL in the connection accept packet. 9. A ROSE application which sends data larger than 65500 bytes will get truncated packets on the receiving side. 10. In osidiag, "Status" test fails under FTAM tests. 11. A ROSE application will core-dump if a NULL ubuf pointer is used on a ROSE API call. 12. The system may hang for 30+ seconds, when using the FTAM responder accessing OTS via the XTI t_bind call with qlen greater than 8196. 13. OTS panics when FTAM attempts to open a connection. The panic occurs only when one or more CONS/X.25 subnets are configured, no LAN or CLNS/X.25 subnets are configured, the remote ftam responder is configured in remote_app, and the remote NSAP is not configured in ots_dests. The panic occurs in ERcMultiFail as a "Data page fault". 14. Current users of CLNI (an interface only supported for limited customers) would like the interface to also return IS routing information, in addition to the ES routing information that it is currently providing. PHNE_6388: 1. The defect report described it as "OSIADMIN reports error: get_x25_dev_status: ioctl failed." If you are using the high-performance X.25 (Streams X.25) link with 2 or more X.25 cards, you may get the following error when you select "Start X.25", "Stop X.25", "Test Connectivity", or "View Configuration" in the osiadmin X.25 menu. "get_x25_dev_status: ioctl failed. errno=223". Also, if you are using the high-performance X.25 link with 1 or more X.25 cards, you may get the following error when you start OTS from osiadmin: "Making sure links are running... check_links: Status of /dev/x25_0 - not up after 30 sec Couldn't start all links, starting OTS anyway!" 2. In osidiag, under "WAN X.25 Tests ->", if you select "Status ...", the test may fail with the following error: test status: FAILED osidiag: Can't execute x25stat. (BT561) The file "/opt/x25/bin/x25stat" cannot be executed by this process. Verify current userid and permisssions on this file. ENOENT: No such file or directory 3. System Panic with the following markers in the dump: e2xsiger+0x2c e2xdis+0x150 prctr42+0x64 4. APLI initiator sends out multiple association requests to a responder. The responder sometimes sends back negative responses and closes the endpoints. The initiator receives user abort requests instead of the negative responses. 5. When executing otsshowroute or otsaddes a k-shell error is reported complaining an unexpected "else" in the script. 6. Osidiag transport loopback test fails on a TRANSPAC network when a NULL packet address is used. The X.25 subaddress corrupts the NSAP. 7. Osidiag connect and loopback tests cause a system panic when it tries to connect to invalid NSAPs. The query subnet flag was turned on and there was an IS on the subnet. 8. OTS panics the system when the CLNP NULL subset is configured. Any incoming PDU will cause the panic. 9. OTS panics the system when the CLNP NULL subset is configured and an osiping command is executed. 10. The man page for otsshownsaps appears to be missing. 11. OTS does not automatically boot because /opt is not mounted. 12. A user application using the ROSE API core-dumps if a NULL ubuf->buf pointer is used on a reject reply. 13. Session api demo program will not run over lan. It only shows up what rfc1006 is not configured. When you run the client demo program you will see errors osi_get_event: receives unexpected message 1407 Client: abnormal termination, exit code = -999 Defect Description: PHNE_7780: 1. A debug message was accidentally left in the code. It is removed with this patch. 2. OTS stack compares the header size of the ses_uabort_rq against a preconfigured value. The comparison failed and the request was discarded. The preconfigured value is wrong, hence the check fails. The value has been fixed. 3. As tp4clns_maxret = 1000, we should never spend more than 1000 deciseconds (1 decisecond = 1/10 of a second) between two successive retransmissions. The limit is not checked, before the retransmission timer is increased. 4. Changes to provide OSIPING added an additional network SAP (#72) to the static configuration. At startup time OTS initialization places the address of the CLNS Network SAP in each of the CONS and CLNS SATs. The algorithm assumed that the CLNS Network SAP would be the last Network SAP in the configuration. This is no longer true, the OSIPING SAP is 72, and the CLNS SAP is 70 and thus 72 was being placed in both SATs. MSDSG looks in the CONS SAT, finds the wrong SAP number and promptly fails. 5. Procedure did not do an explicit return(0) when successful. 6. The routing mechanism was trying to access a routing entry which was not valid any more. The fix is to verify the entry before referencing it. 7. A RCI pointer was set properly. It ended up pointing to the wrong data structure. Now the fix is to ensure proper initialization of this pointer. 8. a) missing shift in KSH script b) The more bit processing was incorrect. c) No support provided for processing RFC1006 traces existed in osipdufmt. 9. A local attachment pointer was not set properly. In the case of CLNS/X.25 without LAN, the CLNS master SAP(21) was occupied by X.25 . All X.25 code assumed that the saphctx field of the SAP would point to a local attachment structure, which was not true for the CLNS master SAP. The fix was to check explicitly to see if we are handling a CLNS master SAP and to treat it as a special case. PHNE_7404: 1. OTSSTART is setting the umask to 0. 2. Each of the scripts for otsaddis, otsaddroute, and otsdelroute were missing a necessary "then". 3. The X.25 product was modified for MP systems, and these changes cause OTS to panic. 4. Streams changed on 10.x so that pending outbound data is not always visible to OTS. Therefore OTS occasionally sends data when there is other pending outbound data unsent. PHNE_6723: 1. The kernel flow control module returns invalid flow control information during an ap_open() call. This invalid information causes ai_putmsg() an internal library function, to loop. The kernel flow control module now returns valid information 2. A missing call to create a trace header in the module tr4sub.c is resulting in memory corruption of OTS data structures. The nature of the panic depends on which data structure gets corrupted and when the corrupt data is accessed. This only happens when the MSDSG relay function is operating and is associated only with disconnect processing. The code has been modified to create the necessary trace header so that the memory corruption does not occur. 3. FTAM cannot determine whether or not it is safe to delete files of the form Saannnnn in /usr/spool/sockets/osi. Apparently, this can only be safely done by OTS during stack startup. OTS now removes these files. 4. The shell script osipdufmt was not modified to correctly handle the new X.25 formatter output under HP-UX 10.X. This is fixed in this patch. 5. An end system hello is sent for the NSAP that has just been added. The sap table is not initialized and a null pointer is dereferenced. 6. OTS osidiag initialized the NSAPs even though they are unlikely to be used, and all values set are displayed. With this patch osidiag does not initialize the NSAPs. 7. ap_rcv() calls a decoding routine in the ROSE library to decode an incoming ROSE result indication. But the decoder returns a negative data length, which causes ap_rcv() to loop. ap_rcv() will now check for a valid data length. 8. The OTS product never proposes a TSDU Max Size in the Session connect request and always expects in the accept a TSDU Max Size of NULL or none at all. The fix is to ignore TSDU Max Size. 9. The ROSE library does not correctly encode the length field if it requires more than 2 bytes. The fix is to correctly encode a length requiring more than 2 bytes. 10. The wrong location was being used for the FTAM utility osistat. 11. The ROSE library tried to dereference the pointer without first checking the it, hence the core-dump. The fix is to ensure the pointer is not NULL before dereferencing it. 12. OTS transport limits the number of outstanding connect indications (qlen) to 255 or 1/2 the remaining contexts whichever is lower. There is a logic error in the code that allowed the qlen to exceed the limit and caused the problem. The fix enforces the qlen limit. 13. The panic occurs when ERcMultiFail() tries to dereference a NULL pointer. The pointer is now checked. 14. This change is added functionality for CLNI users and TARP developers who desire both ES and IS routing information. There is no change in the getadj() user interface or syntax. The "type" field of the adj_rsp_t data structure will indicate whether a particular route is for ES or IS. PHNE_6388: 1.The ioctl call X25_RD_IFSTATE was not implemented in high-performance X.25 (Streams X.25) and a different mechanism for verfying the status of X.25 had to be used. 2.Osidiag tries to execute /opt/x25/bin/x25stat instead of /usr/sbin/x25stat. The new location is for all flavors of X.25 links on HP-UX 10.X and greater. 3.OTS tries to use an invalid subnet SAP known as a Master SAP. The contents of such a SAP is inconsistent with the operation being performed. The correct behaviour is to ignore the request which is what the patch accomplishes. 4.After the negative response is received, an association indication arrives; OTS stack queues the request to the same endpoint. When ap_close is received from the application, OTS sends out the user abort request. The patch is to declare the endpoints to be valid for one connection only. This patch is for a site specific application. It needs to be explicitly activated. 5.The scripts were missing a neccessary "then", which has been added. 6. otsxt_conid() in sx25_lam.c did not handle the incoming calling address correctly for a TRANSPAC loopback packet. 7.The timer for CLNS was not set properly, causing an invalid operation. 8. An uninitialized global variable is being dereferenced when processing incoming PDU. This only occurs when the subset is set to NULL. 9.An uninitialized global variable is referenced in the process of sending out the CLNP ECHO request with a NULL CLNP subset. 10. The man page was incorrectly named otsshonsaps. 11. This problem was introduced in C.05.01. In C.05.01, softlinks were created to /opt for the start up files: /etc/rc.config.d/ots ----> /opt/ots/lbin/ots.rc The fix in C.05.02 corrected the problem for new installs but not for upgrades by installing real ascii files (not links). This patch looks for a softlink and deletes it. It then moves the /opt/ots/lbin/ots.rc ascii file to where the softlink was at /etc/rc.config.d. 12. The ROSE library tried to dereference the pointer without first checking it, hence the core-dump. 13. Session returned bad information from ses_reg_rq which made the binding in ses_con_rq fail. SR: 1653157958 5003275693 1653159491 5003304972 5003306175 1653163683 1653164012 1653165019 1653162081 5000713602 1653140459 1653148783 1653150003 1653157875 1653180448 1653182915 4701332593 1653182170 5003335968 1653181628 4701335182 Patch Files: /opt/ots/conf/lib/libotsam.a /opt/ots/bin/otsaddes /opt/ots/bin/otsshowroute /opt/ots/bin/otsstart /opt/ots/bin/osipdufmt /opt/ots/lbin/osidiagx /opt/ots/lbin/osiadminx /opt/ots/lib/libapli.a /opt/ots/lib/libapli.sl /opt/ots/lib/libotsrib.a /opt/ots/lib/librose.a /opt/ots/lib/librose.sl /opt/ots/lib/nls/msg/C/osidiag.cat /opt/ots/bin/otsaddis /opt/ots/bin/otsaddroute /opt/ots/bin/otsdelroute /opt/ots/man/man1m/osipdufmt.1m /opt/ots/lib/libotsadm.a what(1) Output: /opt/ots/lib/libapli.a: OTS: C.05.02 $Date: 95/07/20 17:28:48 $ al_rcv.c PATCH C.05.02 (PHNE_6722/PHNE_6723) al_utl.c PATCH C.05.02 (PHNE_6722/PHNE_6723) /opt/ots/lib/libapli.sl: OTS: C.05.02 $Date: 95/07/20 17:28:48 $ al_rcv.c PATCH C.05.02 (PHNE_6722/PHNE_6723) al_utl.c PATCH C.05.02 (PHNE_6722/PHNE_6723) /opt/ots/lib/libotsadm.a: OTS: C.05.02 oa_laystat.c PATCH C.05.02 (PHNE_7779/PHNE_7780) /opt/ots/conf/lib/libotsam.a: e2icstz.c PATCH C.05.02 (PHNE_7779/PHNE_7780) e2isub.c PATCH C.05.02 (PHNE_7779/PHNE_7780) e2xsub.c PATCH C.05.02 (PHNE_7779/PHNE_7780) netcstz.c PATCH C.05.02 (PHNE_7779/PHNE_7780) genoeof.c PATCH C.05.02 (PHNE_6722/PHNE_6723) sesdec.c PATCH C.05.02 (PHNE_6722/PHNE_6723) tr4cstz.c PATCH C.05.02 (PHNE_7779/PHNE_7780) tr4mai2.c PATCH C.05.02 (PHNE_6387/PHNE_6388) tr4main.c PATCH C.05.02 (PHNE_6387/PHNE_6388) tr4sub.c PATCH C.05.02 (PHNE_7779/PHNE_7780) trsdec.c PATCH C.05.02 (PHNE_6387/PHNE_6388) strintses.c PATCH C.05.02 (PHNE_7779/PHNE_7780) strosxint.c PATCH C.05.02 (PHNE_7403/PHNE_7404) strosxmem.c PATCH C.05.02 (PHNE_6722/PHNE_6723) strosxopi.c PATCH C.05.02 (PHNE_7779/PHNE_7780) strosxos.c PATCH C.05.02 (PHNE_7779/PHNE_7780) strosxtool.c PATCH C.05.02 (PHNE_7403/PHNE_7404) strosxtpi.c PATCH C.05.02 (PHNE_6722/PHNE_6723) hp_osxx25.c PATCH C.05.02 (PHNE_7779/PHNE_7780) sx25_lam.c PATCH C.05.02 (PHNE_7779/PHNE_7780) hp_osxfcutil.c PATCH C.05.02 (PHNE_6722/PHNE_6723) strosxrK6.c PATCH C.05.02 (PHNE_7403/PHNE_7404) /opt/ots/lib/libotsrib.a: adj_init.c PATCH C.05.02 (PHNE_6722/PHNE_6723) libotsrib: Revision: C.05.02 getadj_func.c PATCH C.05.02 (PHNE_6722/PHNE_6723) /opt/ots/lib/librose.a: ro_encode.c PATCH C.05.02 (PHNE_6722/PHNE_6723) OTS: C.05.02 $Date: 95/07/20 17:28:48 $ ro_func.c PATCH C.05.02 (PHNE_6722/PHNE_6723) /opt/ots/lib/librose.sl: ro_encode.c PATCH C.05.02 (PHNE_6722/PHNE_6723) OTS: C.05.02 $Date: 95/07/20 17:28:48 $ ro_func.c PATCH C.05.02 (PHNE_6722/PHNE_6723) /opt/ots/lbin/osiadminx: HP92453-02A.10.00 HP-UX SYMBOLIC DEBUGGER (END.O) $R evision: 74.01 $ OTS: C.05.02 $Date: 95/07/20 17:28:48 $ osiutils.c:PATCH_C.05.02 (PHNE_6387/PHNE_6388) $Revi sion: 5.9 $ $Date: 95/12/06 12:01:20 $ /opt/ots/lib/nls/msg/C/osidiag.cat: OTS: C.05.02 osidiag.cat PATCH_C.05.02 (PHNE_6722/PHNE_6723) /opt/ots/lbin/osidiagx: OTS: C.05.02 $Date: 95/07/20 17:28:48 $ bit.c PATCH C.05.02 (PHNE_6722/PHNE_6723) CMIS/CMIP_version_1.6 @(#) sbm.h, revision 3.0 890801 SYN_body.c CMIS/CMIP_version_1.6.1 addtype.c 2.3 Released: 3/13/88 pdu.c 2.1 Released: 10/4/87 fpdu.c 2.3 Released: 3/13/88 apdu.c 2.2 Released: 3/13/88 apdu.c 2.2 Released: 3/13/88 fpdu.c 2.3 Released: 3/13/88 vd.c 2.3 Released: 8/1/88 directory.c 2.3 Released: 3/13/88 file.c 2.1 Released: 10/4/87 osiutils.c:PATCH_C.05.02 (PHNE_6387/PHNE_6388) $Revi sion: 5.9 $ $Date: 95/12/06 12:01:20 $ sbmlib.c, revision 1.0 890801 sbmlib.h, revision 3.0 890801 sbm.h, revision 3.0 890801 sbmprv.c, revision 1.0 890801 sbmlib.h, revision 3.0 890801 sbm.h, revision 3.0 890801 /opt/ots/bin/osipdufmt: OTS: C.05.02 osipdufmt PATCH C.05.02 (PHNE_7779/PHNE_7780) /opt/ots/man/man1m/osipdufmt.1m: C.05.02 osipdufmt.1m PATCH C.05.02 (PHNE_7779/PHNE_7780) /opt/ots/bin/otsaddes: OTS: C.05.02:PATCH (PHNE_6387/PHNE_6388) /opt/ots/bin/otsaddis: OTS: C.05.02 otsaddis PATCH C.05.02 (PHNE_7403/PHNE_7404) /opt/ots/bin/otsaddroute: OTS: C.05.02 otsaddroute PATCH C.05.02 (PHNE_7403/PHNE_7404) /opt/ots/bin/otsdelroute: OTS: C.05.02 otsdelroute PATCH C.05.02 (PHNE_7403/PHNE_7404) /opt/ots/bin/otsshowroute: OTS: C.05.02:PATCH (PHNE_6387/PHNE_6388) /opt/ots/bin/otsstart: OTS: C.05.02 otsstart PATCH C.05.02 (PHNE_7403/PHNE_7404) cksum(1) Output: 1731191336 740644 /opt/ots/lib/libapli.a 845807797 688128 /opt/ots/lib/libapli.sl 1086901074 12732 /opt/ots/lib/libotsadm.a 729149186 1418260 /opt/ots/conf/lib/libotsam.a 1309858332 9348 /opt/ots/lib/libotsrib.a 1710439047 46068 /opt/ots/lib/librose.a 2155500425 53248 /opt/ots/lib/librose.sl 18979808 421448 /opt/ots/lbin/osiadminx 2905658028 354972 /opt/ots/lib/nls/msg/C/osidiag.cat 1048976263 1151168 /opt/ots/lbin/osidiagx 17068088 9291 /opt/ots/bin/osipdufmt 3179253760 7234 /opt/ots/man/man1m/osipdufmt.1m 1428851873 16112 /opt/ots/bin/otsaddes 883215521 15375 /opt/ots/bin/otsaddis 4051262349 6903 /opt/ots/bin/otsaddroute 3927994734 5912 /opt/ots/bin/otsdelroute 3227108871 6542 /opt/ots/bin/otsshowroute 2130767135 14932 /opt/ots/bin/otsstart Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: Must be OTS release C.05.02 Supersedes: PHNE_6388 PHNE_6723 PHNE_7404 Equivalent Patches: PHNE_7779: s800: 10.01 Patch Package Size: 4940 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_7780 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_7780.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_7780.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_7780. 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_7780.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_7780.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None